NIS2 se blíží, neprošvihněte některé lhůty

9. 5. 2025
Doba čtení: 1 minuta

Sdílet

Autor: Depositphotos
Přijetí nového kybernetického zákona, který v Česku implementuje evropskou směrnici NIS2, se blíží. S tím také souvisí řada lhůt, které tento zákon zavádí a bude nutné je dodržet.

Společnost Exclusive Networks přináší přehled nejdůležitějších lhůt souvisejících s novou směrnicí.

Sebeidentifikace (60 dní od účinnosti zákona)

„Po nabytí účinnosti nového zákona o kybernetické bezpečnosti mají podniky přibližně 60 dní na to, aby provedly sebeidentifikaci. To znamená, že musí zjistit, zda spadají pod působnost směrnice NIS2 – tedy zda jsou součástí výčtu regulovaných služeb, zda splňují velikost podniku a do jakého stupně regulace případně spadají,“ říká Hynek Vácha ze společnosti Exclusive Networks.

Exclusive Networks: Poskytujeme péči od A do Z Přečtěte si také:

Exclusive Networks: Poskytujeme péči od A do Z

Registrace u NÚKIB

Jakmile dojde k sebeidentifikaci, podniky se musí registrovat na portálu Národního úřadu pro kybernetickou a informační bezpečnost (NÚKIB).

Hlášení kontaktních údajů (30 dní od registrace)

Dalším krokem je nahlášení údajů jako název podniku, IČO, adresa sídla podniku nebo kontaktní osoby.

Hlášení incidentů

Od chvíle registrace mají podniky také povinnost hlásit významné kybernetické incidenty, a to v několika fázích. Prvotní oznámení musí proběhnout do 24 hodin od zjištění významného incidentu a zahrnuje základní informace jako čas zjištění, povaha incidentu a předběžné dopady.

Reportáž: Budoucnost s Exclusive Networks začíná dnes Přečtěte si také:

Reportáž: Budoucnost s Exclusive Networks začíná dnes

Podrobná zpráva se podává do 72 hodin od zjištění incidentu a obsahuje detailnější informace, jako jsou příčiny incidentu, jeho dopady a přijatá opatření. Závěrečná zpráva se pak podává do 1 měsíce od zjištění incidentu a pouze v případě, že je potřeba poskytnout další podrobnosti nebo aktualizace.

Implementace bezpečnostních opatření (12 měsíců od registrace) 

„Po registraci mají podniky jeden rok na zavedení potřebných technických a organizačních opatření – podle toho, do kterého stupně regulace patří. To zahrnuje například vytvoření bezpečnostní dokumentace, zavedení systému pro řízení rizik nebo zajištění školení zaměstnanců a vedení,“ doplňuje Hynek Vácha.

Zdroj: Exclusive Networks

 

Jste reseller, VAR, poskytovatel služeb či systémový integrátor na českém/slovenském ICT trhu? Ohodnoťte, jak se vám spolupracovalo s výrobci a distributory!

chci hlasovat

Čtěte dále

T-Mobilu dál mírně rostou tržby, v prvním čtvrtletí si polepšil o 2,3 %
T-Mobilu dál mírně rostou tržby, v prvním čtvrtletí si polepšil o 2,3 %
Efektivní a bezpečná správa kontejnerových klastrů
Efektivní a bezpečná správa kontejnerových klastrů
Canalys: Spotřebitelský refresh táhne tablety nahoru, trh vyrostl o 9 %
Canalys: Spotřebitelský refresh táhne tablety nahoru, trh vyrostl o 9 %
Česko pod palbou, v dubnu uživatele zasypaly desítky tisíc škodlivých e-mailů
Česko pod palbou, v dubnu uživatele zasypaly desítky tisíc škodlivých e-mailů
Nutanix a Pure Storage spojují síly, přinesou řešení pro kritické pracovní úlohy
Nutanix a Pure Storage spojují síly, přinesou řešení pro kritické pracovní úlohy
DPD opět rozšiřuje síť, začíná doručovat do OX Point boxů
DPD opět rozšiřuje síť, začíná doručovat do OX Point boxů
'; 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 »