Kristýna Schusterová, Tereza Štefková (Resistant AI): Denně odhalíme až tisíce padělaných dokladů

5. 4. 2024
Doba čtení: 3 minuty

Sdílet

Kristýna Schusterová, Tereza Štefková, Resistant AI
Autor: Jan Vaca
Kristýna Schusterová, Tereza Štefková, Resistant AI
Umělá inteligence zatím ještě neumí vytvořit falešné doklady, které by byly k nerozeznání od těch pravých. Sofistikovanějších podvodů ale bude přibývat, shodují se Kristýna Schusterová a Tereza Štefková ze společnosti Resistant AI.

Společnost Resistant AI se zaměřuje zjednodušeně řečeno na odhalování padělaných dokladů. Využívá k tomu umělou inteligenci a s její pomocí se snaží zjistit, zda byl nějaký dokument, faktura nebo osobní průkaz pozměněn, aby mohl být následně využit třeba pro podvod.

Podcast s Kristýnou Schusterovou a Terezou Štefanovou si můžete poslechnout zde:

Firma, za kterou stojí Martin Rehák, sídlí v Praze, ale zastoupení má i v Londýně a v New Yorku a své služby nabízí celosvětově. Společnost zároveň patří mezi velmi úspěšné z pohledu investic, od roku 2019 posbírala Resistant AI na investicích kolem 600 milionů korun. Mezi investory do firmy patří třeba Google. I proto jsme loni firmu zařadili mezi osm tuzemských startupů využívajících umělou inteligenci, které je dobré sledovat.

„Pořád ještě občas narazíme na případ, kdy někdo přelepí číslo na kartě nebo nějaký údaj na dokumentu postaru papírovou přelepkou a věří, že mu to projde. Čím dál víc se ale setkáváme s úpravami, za kterými stojí organizovaný zločin,“ říká v podcastu portálu Lupa.cz Kristýna Schusterová, která v Resistant AI zastává pozici solutions engineer.

Ukázka zfalšovaných dokumentů

Ukázka zfalšovaných dokumentů. Účet zůstal stejný, jiné je logo. Padělatel využil šablonu, kterou lze pořídit na internetu.

Autor: Resistant AI

„Padělá se úplně všechno. Pracujeme především pro finanční společnosti, banky nebo i zdravotní pojišťovny. Řešíme proto upravené faktury, osobní doklady nebo lékařské zprávy. Denně jde počet odhalených případů do vyšších stovek, někdy tisíců,“ dodává.

V České republice využívá řešení od Resistant AI například pojišťovna Kooperativa. Když si letos nechala zkontrolovat téměř čtvrt milionu dokumentů, objevily se nesrovnalosti u více než tisícovky dokumentů. Většinou se jednalo o úpravu dokladů, na jejichž základě chtěli klienti po Kooperativě, aby jim vyplatila plnění z pojistek. V jednom z případů třeba požadovala klientka pojišťovny čtyřicet tisíc za údajnou zlomeninu nohy. Ve skutečnosti měla ale jen podvrtnutý kotník a původní zprávu od lékaře pozměnila, aby to vypadalo na závažnější poranění.

„V řadě případů se jedná o podvod, o který se pokouší jednotlivec. Stále častěji ale narážíme na případy, kdy je podvod připravován s pomocí univerzálních šablon, které lze koupit na internetu za pár dolarů a následně si je nechat upravit,“ konstatuje v podcastu Tereza Štefková, která v Resistant AI pracuje jako research team leader.

Podvody s dokumenty podle ní výrazně usnadňuje i umělá inteligence. Lidé například využívají fotografie vygenerované aplikacemi typu Midjourney a snímek použijí pro falešný pas nebo jiný osobní dokument (o padělaných dokladech jsme už loni psali v textu Moderní otroctví, nebo průmyslová špionáž z Číny? V ČR se rozmáhá generování falešných dokladů).

„Nejsme ještě v bodu, kdy by nějaká generativní neuronová síť uměla podle slovního zadání vytvořit dokonalý osobní doklad, který by byl dostatečně vizuálně přesvědčivý. Čím dál víc se ale budeme určitě setkávat s nějakým systematickým paděláním, které bude postupně víc sofistikovanější,“ dodává.

Co dalšího v podcastu ještě uslyšíte?

  • Na co všechno se padělané dokumenty používají? Proč se třeba upravuje účet na elektřinu?
  • Jak Resistant AI zjišťuje, zda je některý dokument digitálně upravený?
  • Firma kromě dokumentů dokáže sledovat i chování klientů bank. Proč to dělá a co může indikovat to, když vkládáte heslo s pomocí kláves CTRL+V

Podcast si můžete pustit přímo zde, případně na vaší oblíbené podcastové aplikaci.

WT100_25_SE

V podcastu, který běží od poloviny roku 2018, zpovídáme zástupce české e-commerce, IT scény, mediálních domů i osobnosti z dalších souvisejících oborů. Naposledy jsme mluvili třeba s Lukášem Němčíkem, ředitelem marketingu a rozvoje skupiny Coop, nebo s Ivanem Kuckirem, který stojí za populárním fotoeditorem Photopea.

Podcast serveru Lupa.cz najdete na všech hlavních platformách: Apple PodcastsSpotifyPodBean ne­bo Google Podcasts. Sledovat můžete i náš kanál na YouTube.

  • Chcete mít Lupu bez bannerů?
  • Chcete dostávat speciální týdenní newsletter o zákulisí českého internetu?
  • Chcete mít k dispozici strojové přepisy podcastů?
  • Chcete získat slevu 1 000 Kč na jednu z našich konferencí?

Staňte se naším podporovatelem

Autor článku

Autor je od ledna 2018 ředitelem médií vydavatelství Internet Info. Předtím 6 let vedl zpravodajskou sekci portálu iDNES.cz, ještě předtím byl několik let reportérem celostátní redakce MF DNES. Občas si rád něco napíše.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).