{"id":8,"date":"2026-10-14T20:39:27","date_gmt":"2026-10-14T11:39:27","guid":{"rendered":"https:\/\/tech.swallow-incubate.com\/en\/?p=8"},"modified":"2026-10-14T20:40:31","modified_gmt":"2026-10-14T11:40:31","slug":"presentation-attack-types","status":"publish","type":"post","link":"https:\/\/tech.swallow-incubate.com\/en\/liveness\/presentation-attack-types\/","title":{"rendered":"Types of Presentation Attacks on Face Recognition \u2014 and Which Ones Are Realistic Threats"},"content":{"rendered":"<p>In <a href=\"https:\/\/tech.swallow-incubate.com\/en\/liveness\/face-recognition-photo-attack\/\">our previous experiment<\/a>, we confirmed that plain face recognition can be defeated with a printed photo. So what other kinds of spoofing attacks are there, and how realistic is each one?<\/p>\n<p>When you design a face recognition system, the starting point is not &#8220;block every attack.&#8221; It is deciding <strong>which attacks your system needs to withstand, given what it is used for<\/strong>. This article organizes the attack types to help you make that call.<\/p>\n<hr \/>\n<h2>Terminology: presentation attacks and PAD<\/h2>\n<p>An attack that impersonates someone by <strong>presenting<\/strong> a fake \u2014 a photo, a screen, a mask \u2014 to the camera is called a <strong>presentation attack<\/strong>. The technology that detects it is <strong>PAD (Presentation Attack Detection)<\/strong>, also known as <strong>liveness detection<\/strong>. This terminology follows the framework used in ISO\/IEC 30107, the international standard series on biometric presentation attack detection.<\/p>\n<p>Attacks that bypass the camera and <strong>inject fake data directly into the system<\/strong> (injection attacks) are a separate class of threat, and they are where deepfakes are most often used. This article focuses on attacks that are shown to the camera.<\/p>\n<pre><code class=\"language-text\">Presentation attack: \"show\" a fake to the camera     -> covered by PAD (liveness detection)\nInjection attack:    bypass the camera, inject data   -> covered by channel and device protection\n<\/code><\/pre>\n<hr \/>\n<h2>Five types of attack<\/h2>\n<h3>1. Print attack<\/h3>\n<p>The attacker holds a printed photo of the target&#8217;s face up to the camera. This is <strong>the oldest and cheapest attack<\/strong>: all it takes is a printer. The photo itself is often published by the target on social media, so it is easy to obtain. As <a href=\"https:\/\/tech.swallow-incubate.com\/en\/liveness\/face-recognition-photo-attack\/\">our experiment showed<\/a>, face recognition without liveness detection cannot stop it.<\/p>\n<h3>2. Display attack (still image)<\/h3>\n<p>The attacker shows a photo of the face on a smartphone or tablet screen. No printing is required, so it can be done on the spot. Moir\u00e9 patterns and screen reflections are possible clues, but spotting them is not the face recognition model&#8217;s job \u2014 so plain face recognition lets it through as well.<\/p>\n<h3>3. Replay attack (video)<\/h3>\n<p>The attacker plays a video of the target&#8217;s face on a screen. Unlike a still image, the video <strong>contains blinking and head movement<\/strong>, which can defeat simple challenge-based liveness checks such as &#8220;blink and you are real.&#8221; Video material, too, can be obtained when the target has published it.<\/p>\n<h3>4. 3D mask attack<\/h3>\n<p>The attacker wears a three-dimensional mask modeled on the target&#8217;s face. Because a mask has real depth, it can fool some depth-based defenses. However, a convincing mask requires significant cost and the target&#8217;s 3D face shape, so <strong>the attack cost is roughly an order of magnitude higher<\/strong>. It is only worth it against high-value targets.<\/p>\n<h3>5. Deepfakes<\/h3>\n<p>The attacker uses AI-generated or AI-manipulated face images and video. A deepfake can be shown on a screen as a presentation attack, or fed through a virtual camera as an injection attack. The latter needs system-wide defenses, not liveness detection alone. Generation costs are falling every year, making this <strong>the fastest-moving area<\/strong> of the threat landscape.<\/p>\n<hr \/>\n<h2>Attack cost vs. likelihood<\/h2>\n<table>\n<thead>\n<tr>\n<th>Attack<\/th>\n<th>Attack cost<\/th>\n<th>How easy the material is to obtain<\/th>\n<th>Likelihood (our view)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1. Print<\/td>\n<td><strong>Very low<\/strong><\/td>\n<td>Often available on social media<\/td>\n<td><strong>High<\/strong> \u2014 defend against first<\/td>\n<\/tr>\n<tr>\n<td>2. Display (still image)<\/td>\n<td><strong>Very low<\/strong><\/td>\n<td>Same as above<\/td>\n<td><strong>High<\/strong> \u2014 same as above<\/td>\n<\/tr>\n<tr>\n<td>3. Replay (video)<\/td>\n<td>Low<\/td>\n<td>Possible if public video exists<\/td>\n<td>Medium<\/td>\n<\/tr>\n<tr>\n<td>4. 3D mask<\/td>\n<td><strong>High<\/strong> (fabrication, 3D shape data)<\/td>\n<td>Difficult<\/td>\n<td>Low \u2014 limited to high-value targets<\/td>\n<\/tr>\n<tr>\n<td>5. Deepfake (shown on a screen)<\/td>\n<td>Medium to low (falling)<\/td>\n<td>Can be generated from photos<\/td>\n<td>Medium \u2014 increasing<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The key point: <strong>the size of a threat is set by how easy the attack is to carry out, not by how sophisticated it is<\/strong>. The attacks to worry about most are not elaborate 3D masks, but types 1 and 2 \u2014 which anyone can carry out today.<\/p>\n<hr \/>\n<h2>How far to defend depends on the use case<\/h2>\n<p>Every defense you add costs money and adds friction for users. The deciding question is: <strong>if impersonation succeeds, who gains, and how much?<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Example use case<\/th>\n<th>Motive for impersonation<\/th>\n<th>Where to draw the line (one way to think about it)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Time and attendance<\/td>\n<td>Buddy punching (clocking in for someone else)<\/td>\n<td>1 and 2 are a must; covering 3 makes it robust<\/td>\n<\/tr>\n<tr>\n<td>Door access and facility management<\/td>\n<td>Unauthorized entry<\/td>\n<td>1, 2 and 3 are a must; consider 4 depending on what is protected<\/td>\n<\/tr>\n<tr>\n<td>Logins to clinical and business systems<\/td>\n<td>Misuse of privileges<\/td>\n<td>1, 2 and 3 are a must<\/td>\n<\/tr>\n<tr>\n<td>eKYC \/ remote identity verification and account opening<\/td>\n<td>Direct financial gain<\/td>\n<td>Assume 1 through 5, plus defenses against injection attacks<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Try writing down, for your own system, what would happen if a printed photo got through. The level of defense you need usually becomes clear.<\/p>\n<hr \/>\n<h2>Measure the effect with accuracy metrics<\/h2>\n<p>When you evaluate liveness detection, look for <strong>numbers<\/strong>, not the words &#8220;it blocks attacks.&#8221; The field has its own accuracy metrics, defined in ISO\/IEC 30107-3:<\/p>\n<ul>\n<li><strong>APCER<\/strong> (Attack Presentation Classification Error Rate) \u2014 the share of attack samples wrongly accepted as live. Lower means stronger against attacks.<\/li>\n<li><strong>BPCER<\/strong> (Bona Fide Presentation Classification Error Rate) \u2014 the share of genuine live faces wrongly rejected as attacks. Lower means better usability.<\/li>\n<\/ul>\n<p>The two are a <strong>trade-off<\/strong>, so looking at only one of them tells you little. They also need to be read <strong>together with the test conditions<\/strong> \u2014 which attack samples were used, and how many.<\/p>\n<hr \/>\n<h2>Summary<\/h2>\n<ul>\n<li>Presentation attacks are easiest to reason about as five types: <strong>print, display, video replay, 3D mask, and deepfake<\/strong>.<\/li>\n<li>The size of a threat is driven by <strong>how easy it is to carry out<\/strong>, not how sophisticated it is. The top priorities are <strong>print and display attacks<\/strong>, which anyone can carry out today.<\/li>\n<li>How far to defend depends on the use case. Work backward from <strong>who gains, and how much, if impersonation succeeds<\/strong>.<\/li>\n<li>Evaluate defenses with <strong>numbers such as APCER and BPCER, together with their test conditions<\/strong> \u2014 not with the words &#8220;it blocks attacks.&#8221;<\/li>\n<\/ul>\n<p>To check item by item how far your system should go \u2192 <a href=\"https:\/\/tech.swallow-incubate.com\/en\/liveness\/anti-spoofing-checklist\/\">Face Anti-Spoofing Design Checklist: 12 Items to Review Before Production<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Five presentation attacks on face recognition (print, display, replay, 3D mask, deepfake), ranked by cost and likelihood, and where to defend.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-liveness"],"_links":{"self":[{"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":1,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":13,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/posts\/8\/revisions\/13"}],"wp:attachment":[{"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.swallow-incubate.com\/en\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}