Hrozby pro platformu Mac rychle stoupají žebříčky četnosti výskytu malwaru – děje se tak proto, že si Mac OS X získává přízeň stále více uživatelů a výrazněji se uplatňuje také v podnikové sféře.
S ohledem na to, jak nízké povědomí o (ne)bezpečnosti této platformy uživatelé mají, se pro útočníky jedná o jednu z oblastí, na něž se v blízké budoucnosti zaměří nejintenzivněji.
Uvedené tvrzení se opírá o výsledky průzkumu provedeného v USA společností iSec Partners – podle něj se jen 20?% Američanů domnívá, že počítače Mac mohou být náchylné k napadení počítačovými viry. Naproti tomu o PC si nadpoloviční většina respondentů myslela, že jsou „zranitelné“ nebo dokonce „velmi zranitelné“. To v konečném důsledku znamená, že si uživatelé Maců připadají velmi bezpečně a nepociťují potřebu se před hrozbami jakkoliv chránit. Stávají se tak paradoxně daleko zranitelnějšími v porovnání s uživateli PC, kteří již s nejvyšší pravděpodobností měli nějaký problém s malwarem, a tak se chovají výrazně zodpovědněji.
MacDefender již neútočí, ale...
Hrozby pro platformu Mac byly dosud povětšinou navrženy v duchu sociálního inženýrství – příkladem může být například MacDefender, falešný antivirus, který se snažil vynutit pozornost uživatelů tím, že přímo zaútočil na jejich přesvědčení o domněle dokonalé bezpečnosti Maců a varoval je před možnými riziky. MacDefender se objevil v dubnu a květnu – společnost Apple reagovala s mírným zpožděním tak, že vydala patch, který uvedenou zranitelnost odstranil a z nakažených počítačů nežádoucí software smazal.
Alex Stamos z iSec Partners tvrdí, že počítače Mac vybavené OS X Lion jsou tak zranitelné, že by neměly být sdružovány do počítačových sítí. Myslí si, že by Macy měly být využívány pouze jako samostatné počítače a měly by být zapojovány pouze do IP nebo Windows sítí, ne těch, které jsou primárně navrženy pro Mac. Síťové protokoly Mac Serveru, zejména pak DHX uživatelská autentizace, jsou podle něj navrženy pro snadné používání, ale rozhodně ne z hlediska zajištění potřebné bezpečnosti. Pro hackery je podle Stamose velmi snadné přesvědčit uživatele, aby realizoval download souboru, který následně způsobí přetečení bufferu v paměti serveru, a umožní tak útočníkovi přístup ke v zásadě libovolným právům. DNS služby v Apple sítích podle Stamose nevyžadují šifrování, a tak jsou náchylné na malware, který dokáže odposlechnout ID jednotlivých strojů a následně je replikovat. Rizikové je rovněž chování VPN spojení, kdy po jeho přerušení v paměti Macu zůstávají uloženy komunikační klíče, jež mohou být snadno zneužity. Mac servery uznávají celou řadu autentizačních protokolů, ale nedokážou zabránit malwaru v tom, aby prováděl postupný downgrade na nejméně bezpečný z nich, čímž mu v zásadě umožňují hledání nejméně bezpečného bodu a jeho následné prolomení.
„Provozujte svůj Mac jako malý ostrůvek v nepřátelském oceánu,“ navrhuje Stamos. „Jakmile jednou nainstalujete OS X Server, stáváte se až příliš snadnou kořistí,“ uzavírá celou problematiku.
Počítače Mac napadlo menší Tsunami
V průběhu října objevil výzkumný tým společnosti Eset novou hrozbu, jež byla původně vytvořena pro Linux a která nyní může ohrozit počítače s operačním systémem Mac OS X. Jedná se o modifikaci linuxového kódu, původně označovaného jako Linux/Tsunami a nyní detekovaného jako OSX/Tsunami.A.
Trojan pro Mac OS X přezdívaný Tsunami je backdoor řízený přes otevřený protokol IRC (Internet Relay Chat), který umožňuje, aby se nakažený počítač stal botem pro útoky typu distribuovaného odmítnutí služby (Distributed Denial of Service). Obsahuje pevně definovaný seznam IRC serverů a kanálů, k nimž se pokouší připojit, a následně jako klient „naslouchá“ a provádí příkazy přicházející z vytvořeného kanálu. Tento backdoor umožňuje vzdálenému uživateli stahování a posílání souborů, například dalšího malwaru nebo aktualizace kódu Tsunami, a navíc vykonávání příkazů v prostředí příkazového řádku, což mu v zásadě otevírá cestu k ovládnutí infikovaného počítače.
„Dva vzorky stejného kódu byly nalezeny v různých částech světa, byly mezi nimi však drobné rozdíly. Telemetrická data společnosti Eset navíc indikují velmi malý počet nakažených hostitelských počítačů, což naznačuje, že tento malware je zatím ve fázi testování. Tato hrozba není nijak vyspěle propracovaná ani složitá, takže riziko pro uživatele počítačů Mac není značné,“ říká Pierre-Marc Burelu, vedoucí výzkumu malwaru ve společnosti Eset.
';
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';
}
}
Organizace ICANN, klíčová organizace, která má na starosti správu a koordinaci různých aspektů internetové infrastruktury, bude mít zasedání v Praze, a to konkrétně 9. až 12. června proběhne v Praze ICANN83 Policy Forum.
ICANN83 v pražském Kongresovém centru spojí účastníky z vlád, občanské společnosti, soukromého sektoru a technické komunity, aby společně pracovali na důležitých politických otázkách týkajících se systému doménových jmen (DNS) a jedinečných identifikačních systémů internetu.
2. 6.
Spojení na dráze
Na začátku června došlo k oficiálnímu spojení společností ČD - Telematika a ČD - Informační Systémy (ČD-IS). „Nová“ ČD - Telematika má přibližně 900 zaměstnanců a stává se jedním z největších poskytovatelů ICT služeb v oblasti dopravy a státní správy v České republice.
Fúze přináší sjednocení klíčových kompetencí obou firem, zjednodušení procesů, posílení inovačního potenciálu a zákazníkům širší portfolio služeb.
19. 5.
Pozvánka: Spravujte kontejnery efektivně a bezpečně
Řešení pro správu kontejnerů napříč datovými centry a cloudy spolu s nejnovějšími trendy a technologiemi v oblasti kontejnerizace budou v centru pozornosti konference Kontajnery v praxi, která se uskuteční 27. května 2025 v prezenční formě v bratislavském hotelu Lindner.
Konference nabídne i praktické pohledy na využití, správu, škálování a zabezpečení kontejnerů. Slovenští a čeští odborníci zde představí i konkrétní příklady z praxe a zaměří se na témata jako migrace, automatizace nebo zálohovaní a obnova dat. Více informací a registrace zde.
6. 5.
Miliony pro DecisionRules
Český startup DecisionRules, který vyvíjí cloudovou
platformu pro automatizaci rozhodovacích procesů bez nutnosti programování, uzavřel investiční kolo ve výši 1,6 milionu eur. Kolo vedl fond Lighthouse Ventures za účasti Czech
Founders VC, BD Partners, Chilli Ventures a andělských investorů Oryho Weihse a Michaela
Rostocka-Poplara.
Investice bude použita na rozšíření působnosti v USA a Velké Británii, kde již firma zaznamenala silný
zájem, a dále na rozvoj produktu, včetně nových funkcí postavených na umělé inteligenci. Cílem je
zpřístupnit automatizaci rozhodování širšímu spektru firem, včetně malých a středních podniků a týmů
bez technického zázemí.
22. 4.
Helios v novém
Značka Helios, která zastřešuje firemní softwarové řešení od společnosti
Asseco Solutions spadající do mezinárodní IT skupiny Asseco, mění po letech svou vizuální identitu. Za minimalistickým, moderním a nadčasovým designem stojí kreativní agentura Miuza.
Jedním ze záměrů rebrandingu bylo vytvořit logo, které bude snadno zapamatovatelné a funkční i za
několik let. Šikmá příčka v písmenu „H“ pak nenápadně odkazuje na původní design, propojuje tak
historii značky s její budoucností.