;

Hackeři pracují průmyslovým způsobem

8. 8. 2014
Doba čtení: 6 minut

Sdílet

Autor: © tiero - Fotolia.com
Počítačové útoky jsou dobře fungující byznys. Vše potřebné pro kyberzločin koupíte přes internet.

Kybernetické útoky se stávají oborem profesionálů, kteří jsou schopni útok přesně zacílit. Ukazují to zjištění výzkumu Cisco Midyear Security Report, podle kterého byly až v 70 procentech firem zjištěny stopy po tak zvaném botnetu. To je škodlivý kód, díky němuž je útočník schopen převzít kontrolu nad napadeným počítačem a zneužít ho k provádění dalších útoků či jiným činnostem. Ve více než 90 procentech firem byl zaznamenán provoz směřující na servery, na nichž se vyskytuje malware. Provést kvalitní a dobře zacílený kybernetický útok je totiž dnes snazší než kdykoli předtím. Stačí si pořídit předpřipravenou sadu (exploit kit) připravenou profesionály. Firmy se podobným útokům neumí bránit.

Dosavadní způsoby ochrany proti kybernetickým útokům přestávají stačit. Útočníci se zaměřují na odhalení slabých míst, která pak mohou zneužít ke krádeži dat nebo zneužití počítačových systémů oběti. Může jít například o zastaralý a neaktualizovaný software, bezpečnostní chyby v počítačových programech nebo chyby a omyly uživatelů. Ty pak útočníci využívají k tvorbě balíčků (exploit kits), s jejichž pomocí lze provést profesionální útok i v podstatě na objednávku.

Výzkum dále ukázal, že když byl loni zatčen tvůrce jednoho z nejpopulárnějších kitů (Blackhole Exploit Kit), poklesl počet podobných balíčků meziročně o 87 procent. Zároveň se ale zvýšila jejich rozmanitost. Kit dokázal určit bezpečnostní slabiny zejména v programech Adobe Acrobat a v jazyce Java, a následně je využít pro provedení útoku. Podle některých zdrojů mohly útoky založené na Blackhole Exploit Kit až za 80 procent napadení odhalených bezpečnostními programy. Zjištění přitom potvrzují, že právě Java je jedním z nejzranitelnějších programů v současnosti. Využívá ji až 93 procent útoků, což je o dva procentní body více než v listopadu 2013.

Škodlivé kódy typu exploit jsou totiž mířeny na konkrétní známé slabiny operačního systému nebo aplikace, s cílem získat přístup k napadanému počítači. Nákupem balíčku (exploit kit) lze získat prostředí pro vytváření nebezpečných kódu. Výsledný exploit lze šířit pomocí odkazů v mailu, ale také odkazy či skrytým přesměrováním na stránkách některých serverů. Tento typ útoků lze obtížně detekovat klasickými antivirovými programy, protože není znám jeho vzorek, se kterým by jej bylo možné porovnat. Pro boj s takovými typy útoků je nutné v síti detekovat chování jednotlivých aplikací v síti a propojit tato zjištění s informacemi např. z telemetrických dat bezpečnostních senzorů nebo dalších prvků firemních sítí.

Riziková dynamická DNS

Ukazuje se, že firmy neumí správně nastavit bezpečnostní pravidla. Útočníci často využívají starších či již nepoužívaných aplikací nebo infrastruktury, aby unikli pozornosti. Firmy se totiž často brání jen vůči známým a významným hrozbám, jako byl například Heartbleed. Výzkum Midyear Security Report zjistil, že až v 94 procentech sítí zkoumaných firem byl zjištěn provoz směřující na servery obsahující některý ze škodlivých programů. Nejčastěji šlo o DNS dotazy na IP adresu u serverů, které jsou spojovány s distribucemi škodlivého software Palevo, SpyEye či Zeus.

Téměř v 70 procentech sítí byly objeveny stopy po DNS dotazech směřujících na Dynamic DNS domény. Právě služby DDNS používají botnety k zamaskování své skutečné IP adresy, aby je nebylo možné blokovat. Proto tyto dotazy mohou naznačovat, že síť byla napadena botnetem a mohla být tak zneužita k provedení DDoS či jiným útokům. Při DDoS útocích dochází v podstatě k přetížení napadených serverů příliš velkým počtem přístupů. Pro ostatní uživatele se pak takový server jeví jako nedostupný. Botnetem napadené počítače jsou pro tento typ útoků skvělým nástrojem.

Nové cíle

Nástup internetu věcí a Internet of Everything rozšiřuje počet zařízení, na která se mohou útočníci zaměřit. Podle údajů společnosti Cisco je v současnosti k internetu připojeno více než 50 miliard různých zařízení. Už dávno to nejsou jen počítače. Do IT světa vstupují další výrobci, kteří se dosud věnovali jiným oborům, a naopak tradiční výrobci IT implementují své technologie do nových zařízení. Do centra pozornosti útočníků se tak dostávají například i POS terminály, ohroženy tak mohou být například bankomaty.

Výraznou změnou prochází i zaměření útoků z hlediska vertikálních trhů. Nárůstu útoků téměř o 400 procent museli čelit vydavatelství a mediální domy. Přesvědčily se o tom i významný vydavatelství v České republice, která musela čelit masivním DDoS útokům v loňském roce. V pořadí „oblíbenosti“ u útočníků následuje farmaceutický a chemický průmysl s téměř trojnásobným nárůstem útoků a letecký průmysl, u nějž se počet útoků více než zdvojnásobil.

Rostoucí pozornost, kterou útočníci věnují médiím, pravděpodobně souvisí s rostoucími rozpočty směřujícími do internetové reklamy. Schopnost mediálních domů reklamu přesně cílit na konkrétní skupiny uživatelů je velkým lákadlem pro útočníky. Ti tak mohou připravit skutečně přesně zacílené útoky na konkrétní skupiny uživatelů.

„Kybernetičtí útočníci se profesionalizují a standardní způsoby ochrany proti kybernetickým hrozbám již dávno nestačí,“ komentuje situaci Ivo Němeček, technický ředitel Cisco ČR, a dodává: „Firmy by měly pochopit, že ochraně proti těmto útokům je potřeba věnovat stejnou pozornost, jako hlavní oblasti svého podnikání. Dnes totiž není otázkou, zda k útoku dojde, ale jen kdy a za jakých okolností. Ochrana tak musí zahrnovat fáze již před samotným kybernetickým incidentem, během něj i po něm.“

Zdroj: Cisco Midyear Security Report

'; 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'; } }
OSZAR »