Mikrosegmentace zlepšuje zabezpečení sítě

13. 10. 2019

Sdílet

Autor: (c) Fotolia - Andrea Danti
Mikrosegmentace je metoda vytvoření bezpečných zón v datových centrech (DC) a cloudu, které umožní firmám izolovat pracovní zátěže od sebe navzájem a individuálně je zabezpečit. Je zaměřena na zajištění větší granularity sítě.

Segmentace sítě není novinka. Společnosti využívají firewally, virtuální lokální sítě (VLAN) a seznamy řízení přístupu (ACL) pro segmentaci sítě již léta. Při mikrosegmentaci se zásady uplatňují na individuální pracovní zátěže pro zajištění větší odolnosti vůči útokům.

„VLAN umožňují velmi hrubozrnnou segmentaci a mikrosegmentace dovoluje segmentaci jemnější. Kdekoli tedy potřebujete zajistit detailní rozdělení přenosů, najdete ji tam,“ uvádí analytik Zeus Kerravala, zakladatel společnosti ZK Research.

Vzestup softwarově definovaných sítí a síťové virtualizace připravil cestu pro mikrosegmentaci. „Můžeme dělat věci softwarově na vrstvě, která je oddělená od nosného hardwaru,“ tvrdí Kerravala. „V důsledku toho se segmentace zavádí mnohem snáze.“

 

Řízení přenosů v DC

Tradiční firewally, systémy IPS (prevence proti vniknutí) a další bezpečnostní systémy jsou navržené tak, aby kontrolovaly a zabezpečovaly provoz přicházející do datového centra ze severojižního směru.

Mikrosegmentace poskytuje firmám větší kontrolu nad rostoucím množstvím komunikace mezi východem a západem (tj. laterální, boční), která probíhá mezi servery a obchází bezpečnostní nástroje zaměřené na hranici.

Když dojde k průlomu, omezuje mikrosegmentace hackerům možnosti potenciálního bočního průzkumu.

„Většina firem umístí všechny své vysoce hodnotné nástroje zabezpečení do jádra datového centra: firewally a systémy IPS. Provoz severojižního směru tedy musí přes tyto firewally projít.

Provoz mezi východem a západem tyto bezpečnostní nástroje obchází,“ upozorňuje Kerravala. „Mohli byste použít firewall pro každé propojení, ale bylo by to příliš nákladné. Také to není moc agilní.“

 

Kdo řídí mikrosegmentaci?

Mikrosegmentace získává hybnost, ale stále existují otázky, kdo by za ni měl být odpovědný. Ve velkém podniku by mohl vést takové aktivity inženýr zajišťující zabezpečení sítě. V menších společnostech by se o nasazení mikrosegmentace mohl starat tým, který zajišťuje provoz zabezpečení a sítě.

„Nevím, zda lze skutečně určit jednu skupinu, která by to měla mít na starost. Myslím, že záleží na účelu použití,“ tvrdí Kerravala. Vidí zájem síťových i bezpečnostních profesionálů.

„Myslím, že protože funguje jako vrstva sítě, ve většině případů je snadné ji v rámci provozu zabezpečení nasadit a provozovat nad sítí. Vidím však také personál síťového provozu, který ji například využívá jako způsob zabezpečení zařízení IoT. Máme zde tedy reálně dvě primární publika.“

 

Přínosy mikrosegmentace

Díky mikrosegmentaci mohou IT profesionálové přizpůsobit nastavení zabezpečení různým typům provozu a vytvářet zásady, které omezují síťové i aplikační toky mezi pracovními zátěžemi na ty, jež jsou výslovně povoleny.

V modelu zabezpečení typu Zero Trust (více viz Computerworld 3/2018) může společnost nastavit zásady, které například určí, že zdravotní přístroje mohou komunikovat jen s dalšími zdravotními přístroji. Když se zařízení nebo zátěž přesune, přesunou se s ním bezpečnostní zásady a atributy.

Cílem je snížit prostor pro síťové útoky: Použitím pravidel segmentace pro pracovní zátěž či aplikaci lze snížit riziko, že by se útočník dostal z jedné zkompromitované zátěže či aplikace na jinou.

Další podporou je provozní účinnost. Seznamy řízení přístupu, směrovací pravidla a zásady firewallu se mohou stát těžko zvládnutelné a přinést velkou režii pro správu, takže je potom v rychle se měnících prostředích škálování zásad obtížné.

Mikrosegmentace se obvykle vykonává v softwaru, což usnadňuje definování jemnozrnných segmentů. Díky mikrosegmentaci může personál IT pracovat na centralizaci zásad segmentace sítě a na snížení počtu potřebných pravidel brány firewall.

Rozhodně to není malý úkol – nebude snadné konsolidovat seznamy řízení přístupu a pravidla firewallu vzniklá v průběhu let a převést je na zásady, které lze vynucovat v dnešních složitých a distribuovaných podnikových prostředích.

Pro začátek – mapování spojení mezi pracovními zátěžemi, aplikacemi a prostředími vyžaduje viditelnost, kterou mnoho podniků nemá.

Jedním z velkých problémů se segmentací je, že musíte vědět, co segmentovat. Některé výzkumy ukazují, že 50 % firem má malou nebo žádnou jistotu, že vědí, jaká IT zařízení mají v síti.

„Pokud ani nevíte, jaká zařízení jsou v síti, jak byste mohli vědět, jaký druh jakých segmentů chcete vytvořit? V oblasti toků datových center je nedostatečná viditelnost,“ dodává Kerravala.

docker + kubernetes školení s dotací tip

 

Tento příspěvek vyšel v Security Worldu 1/2018. Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.

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