-Поиск по дневнику

Поиск сообщений в rss_rss_hh_new

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.03.2011
Записей:
Комментариев:
Написано: 51

Habrahabr/New








Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://habrahabr.ru/rss/new/.
Данный дневник сформирован из открытого RSS-источника по адресу http://feeds.feedburner.com/xtmb/hh-new-full, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Эволюция после эволюции

Среда, 28 Июня 2017 г. 22:14 + в цитатник
image

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

Если сосредоточиться на формуле расчета цены для каждой стадии – при неизменном скоупе и качестве работ неизменно растет рейт себестоимости проекта (в общем случае это выходная цена для Заказчика, именно от этой суммы она идет в плюс бесконечность) относительно получаемых денег конечного исполнителя.
image

Данный факт означает, что маленьким организациям всегда будет место на рынке, так как большие организации не могут с ними конкурировать на равных из-за цены. Можно ли это изменить?

Причина роста рейта


Многие сваливают вину за увеличение рейта на увеличение надежности\вероятности достижения положительного результата у проекта. Так это продается внутри компании. Снаружи Заказчикам поется песня про самых лучших специалистов, полный цикл разработки, многоступенчатое тестирование, гарантии, бренд и т.д.
Причина в другом – многоступенчатая система управления.
image

Увеличивается непрозрачность системы управления. Когда ты работаешь один – такой проблемы нет. Появляется несколько помощников – появляется перманентный дискомфорт, выражающийся в том, что «очевидные» тебе решения необходимо долго и подробно разъяснять другим. При передаче информации из одной головы в другую неизбежно происходит деформация этой информации. Дальше – больше. Дело доходит до того, что ты уже давно не участвуешь а найме и видишь перед собой только членов правления. В итоге, пока твое решение дойдет до рядового сотрудника – оно обрастет всевозможными документами и пояснениями, которые иногда могут изменить цель и суть исходного решения.

Система управления становится настолько сложной, что создаются все условия для рассогласования целей Исполнителей всех звеньев и критичного снижения их мотивации решать декларируемые задачи. Наиболее «талантливые» в этой системе изощренно тянут одеяло на себя (раздувают штат, бюджет), умело используя KPI (свои, чужие, компании) и нормативную документацию.

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

Стандартный путь ведет в тупик


Любое рассогласование или низкую мотивацию пытаются лечить увеличением контроля. Но контролировать не прозрачную систему, больше похожую на черный ящик – бесперспективно. Создаются все новые регламенты, изменения в регламентах (порой, несколько раз в день), новые подразделения (тот же проектный офис, департамент корпоративной архитектуры и т.д.)… Структура управления становится все более сложной, все более «мутной». Время, затрачиваемое на согласование чего-либо начинает зашкаливать. Жопа Рейт растет. Мы тушим пожар бензином.
image

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

Что делать ?


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

В текущее время мы сильно ограничены в методах инвазивного контроля.
Что мы имеем:
• Административные меры – что-то типа KPI.
• Технические решения – что-то вроде детектора лжи.
Оба инструмента с высокой долей вероятности разбиваются о возможности разума «умного» человека. Но чем выше должность, тем более «умного» человека там хотелось бы видеть. Но чем он умнее, тем проще он обходит ограничения, которые мы ему ставим для того, чтобы он больше концентрировался на пользе для компании, чем на пользе для себя. Выхода нет…

Выход есть. Как всегда он не в заплатках и фиксах поверх текущей реализации. Необходимо сменить архитектуру — убрать многоступенчатость из вертикали власти, убрав возможность и мотивацию на местах делать ее непрозрачной и, как следствие, дорогой в стоимости владения.
Кого оставляем:
  • Правление\Акционеров – кому-то же нужно получать прибыль. Это будет родительское юрлицо, которое будет участвовать в капитале всех остальных компаний.
  • Отделы с непосредственными исполнителями. Из каждого отдела необходимо сформировать юрлицо (можно на ОСН, чтобы НДС прокидывать), Генеральным Директором которого поставить начальника отдела и дать ему долю из прибыли (можно без доли в капитале). Обязательно ограничиваем численность дочки (например, 50 человек), чтобы исключить образование дочернего монстра.

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

Цели достигнуты:
  • Мотивация раздуть штат у начальника подразделения сразу уходит в ноль.
    Раньше он всеми правдами и не правдами старался увеличить штат, так как фонд оплаты труда и численность подразделения напрямую влияла на значимость в компании, на премиальный фонд (обычно, он в процентах от ФОТ), вероятность повышения до начальника департамента (повышение часто идет по формальному признаку – можешь управлять самым большим отделом – управляй всеми отделами) и т.д. Теперь ФОТ – это твоя личная расходная статья, которая понижает твой непосредственный доход.
  • Мотивация затянуть одеяло на себя сильно худеет.
    Общего одеяла нет, а то что есть – уже твое.
  • Мотивация осметить работы в «2 счетчика» пропадает.
    При отсутствии сговора высокий прайс оставит твое юрлицо без заказов.
    Это касается не только цены, но и сроков.
  • Лояльность больше не является единственным\основным параметром сотрудника подразделения.
    Теперь необходимо строить команду максимально эффективную с точки зрения производства.
  • Вклад каждого в прибыль компании теперь не размазан среди тысяч других сотрудников.
    Сколько наработал – столько получил.
  • В случае просадки по ресурсам\срокам всегда можно попросить подразделение «клон» помочь в выполнении задачи, тем самым кратно увеличив мощности производства.

С этого момента Правлению возможно на основе статистики убивать неэффективные подразделения, распределяя высвобождающиеся ресурсы в новые организации. Ничто не мешает делать это в автоматическом режиме.

Визуально представить предлагаемую модель устройства бизнеса можно так: допустим, люди — это мыло, а организации — это мыльные пузыри. Всеми этими пузырями управляет «папа».
image

Или «мама».
image

Кстати, наша вселенная, возможно, имеет подобную структуру…
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331712/


Метки:  

Технические подробности новой глобальной атаки шифровальщика Trojan.Encoder.12544 (в разных источниках — Petya и т.п.)

Среда, 28 Июня 2017 г. 21:07 + в цитатник
Вы уж извините, что на ночь глядя, но вирусные эпидемии часов не наблюдают. Итак…

На текущий момент известно, что троянец заражает компьютеры при помощи того же набора уязвимостей, которые ранее использовались злоумышленниками для внедрения на компьютеры жертв троянца WannaCry. Массовое распространение Trojan.Encoder.12544 началось в первой половине дня 27.06.2017. При запуске на атакуемом компьютере троянец несколькими способами ищет доступные в локальной сети ПК, после чего по списку полученных IP-адресов начинает сканировать порты 445 и 139. Обнаружив в сети машины, на которых открыты эти порты, Trojan.Encoder.12544 пытается инфицировать их с использованием широко известной уязвимости в протоколе SMB (MS17-10).

В своем теле троянец содержит 4 сжатых ресурса, 2 из которых являются 32- и 64-разрядной версиями утилиты Mimikatz, предназначенной для перехвата паролей открытых сессий в Windows. В зависимости от разрядности ОС он распаковывает соответствующую версию утилиты, сохраняет ее во временную папку, после чего запускает. При помощи утилиты Mimikatz, а также двумя другими способами Trojan.Encoder.12544 получает список локальных и доменных пользователей, авторизованных на зараженном компьютере. Затем он ищет доступные на запись сетевые папки, пытается открыть их с использованием полученных учетных данных и сохранить там свою копию. Чтобы инфицировать компьютеры, к которым ему удалось получить доступ, Trojan.Encoder.12544 использует утилиту для управления удаленным компьютером PsExec (она также хранится в ресурсах троянца) или стандартную консольную утилиту для вызова объектов Wmic.exe.

Контроль своего повторного запуска энкодер осуществляет с помощью файла, сохраняемого им в папке C:\Windows\. Этот файл имеет имя, соответствующее имени троянца без расширения. Поскольку распространяемый злоумышленниками в настоящий момент образец червя имеет имя perfc.dat, то файл, предотвращающий его повторный запуск, будет иметь имя C:\Windows\perfc. Однако стоит злоумышленникам изменить исходное имя троянца, и создание в папке C:\Windows\ файла с именем perfc без расширения (как советуют некоторые антивирусные компании), уже не спасет компьютер от заражения. Кроме того, троянец осуществляет проверку наличия файла, только если у него достаточно для этого привилегий в операционной системе.

После старта троянец настраивает для себя привилегии, загружает собственную копию в память и передает ей управление. Затем энкодер перезаписывает собственный файл на диске мусорными данными и удаляет его. В первую очередь Trojan.Encoder.12544 портит VBR (Volume Boot Record, загрузочная запись раздела) диска C:, первый сектор диска заполняется мусорными данными. Затем шифровальщик копирует оригинальную загрузочную запись Windows в другой участок диска, предварительно зашифровав ее с использованием алгоритма XOR, а вместо нее записывает свою. Далее он создает задание на перезагрузку компьютера, и начинает шифровать все обнаруженные на локальных физических дисках файлы с расширениями .3ds, .7z, .accdb, .ai, .asp, .aspx, .avhd, .back, .bak, .c, .cfg, .conf, .cpp, .cs, .ctl, .dbf, .disk, .djvu, .doc, .docx, .dwg, .eml, .fdb, .gz, .h, .hdd, .kdbx, .mail, .mdb, .msg, .nrg, .ora, .ost, .ova, .ovf, .pdf, .php, .pmf, .ppt, .pptx, .pst, .pvi, .py, .pyc, .rar, .rtf, .sln, .sql, .tar, .vbox, .vbs, .vcb, .vdi, .vfd, .vmc, .vmdk, .vmsd, .vmx, .vsdx, .vsv, .work, .xls, .xlsx, .xvd, .zip.

Троянец шифрует файлы только на фиксированных дисках компьютера, данные на каждом диске шифруются в отдельном потоке. Шифрование осуществляется с использованием алгоритмов AES-128-CBC, для каждого диска создается собственный ключ (это — отличительная особенность троянца, не отмеченная другими исследователями). Этот ключ шифруется с использованием алгоритма RSA-2048 (другие исследователи сообщали, что используется 800-битный ключ) и сохраняется в корневую папку зашифрованного диска в файл с именем README.TXT. Зашифрованные файлы не получают дополнительного расширения.

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



В это время Trojan.Encoder.12544 шифрует MFT (Master File Table). Завершив шифрование, Trojan.Encoder.12544 демонстрирует на экране требование злоумышленников об уплате выкупа.



Если в момент запуска на экране появилось сообщение о запуске утилиты CHDISK, незамедлительно выключите питание ПК. Загрузочная запись в этом случае будет повреждена, но ее можно исправить при помощи утилиты восстановления Windows или Консоли восстановления, загрузившись с дистрибутивного диска. Восстановление загрузочной записи обычно возможно в ОС Windows версии 7 и более поздних, если на диске имеется используемый системой скрытый раздел с резервной копией критичных для работы Windows данных. В Windows XP такой способ восстановления загрузки не сработает. Также для этого можно использовать Dr.Web LiveDisk — создайте загрузочный диск или флешку, выполните загрузку с этого съемного устройства, запустите сканер Dr.Web, выполните проверку пострадавшего диска, выберите функцию «Обезвредить» для найденных угроз.

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

С целью профилактики заражения троянцем Trojan.Encoder.12544 компания «Доктор Веб» рекомендует своевременно создавать резервные копии всех критичных данных на независимых носителях, а также использовать функцию «Защита от потери данных» Dr.Web Security Space. Кроме того, необходимо устанавливать все обновления безопасности операционной системы. Специалисты компании «Доктор Веб» продолжают исследование шифровальщика Trojan.Encoder.12544.

Инструкция пострадавшим от Trojan.Encoder.12544: news.drweb.ru/show/?i=11350

И это ещё не конец! Будем дальше ковырять.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331878/


[Из песочницы] Cobian Backup и отправление сообщений в Telegram

Среда, 28 Июня 2017 г. 19:15 + в цитатник

Думаю найдется очень мало системных администраторов, которые не выполняют резервное копирование тех или иных данных. Эта заметка будет полезна (надеюсь) для тех, кто пользуется таким программным продуктом как Cobian Backup. А в особенности тем, у кого резервное копирование осуществляется не в одном месте, или даже в разных городах.


Как вы уже поняли из заголовка, я хочу поделиться с Вами маленьким скриптом, который позволяет отправлять что-то (в моем случае кусочек log файла) в telegram.


Для тех кто задается вопросом почему именно Telegram, ведь Cobian Backup умеет оправлять сообщения на почту — объясню свою точку зрения. Telegram — это популярный развивающийся месенджер, который использует огромное количество людей. На мой субъективный взгляд — это удобнее, чем почтовый клиент. Так же этот способ был опробован на ооооочень плохом интернете — все работает. Причем отправка через email в одинаковых условиях не срабатывала.


Скрипт для отправки сообщений в Telegram


Логику для себя я построил следующую. При выполнении задания в Cobian Backup в предпоследней строке лог файла у нас присутствует примерно следующий текст: " 2017-05-31 12:11 Копирование завершено. Ошибок: 0, обработано файлов: 3893, скопировано файлов: 3893, общий размер: 2,43 GB ". Значит мне каким то образом нужно выдернуть эту предпоследнюю строку из лог файла. Ну и собственно то, что я сделал — ниже.


Для отправки сообщений будем использовать PowerShell. Сам скрипт я позаимствовал тут, но чуть чуть его видоизменил.


$chat_id = 'chat_id' #Здесь указываем id чата, куда нам нужно отправлять сообщения. Сообщения отправляются как обычным пользователям, так и группам. 
$date=get-date -uformat "%Y-%m-%d" #Вытягиваем дату в нужном нам формате
$text = get-content -Path ('c:\Program Files (x86)\Cobian Backup 11\Logs\log '+$date+'.txt') -Encoding UTF8 #Указываем путь, где находятся логи cobian backup
$token = 'token' #Указываем токен, который выдается при регистрации бота
[string]$text=$text[$text.count-2] #выдергиваем предпоследнюю строку

#ну и собственно само отправление
$payload = @{
    "chat_id" = $chat_id;
    "text" = "$text";
    "parse_mode" = 'HTML';
}

Invoke-WebRequest `
    -Uri ("https://api.telegram.org/bot{0}/sendMessage" -f $token) `
    -Method Post `
    -ContentType "application/json;charset=utf-8" `
    -Body (ConvertTo-Json -Compress -InputObject $payload)

Настройка Cobian Backup


Для тех, кто использует Cobian Backup в качестве утилиты для резервного копирования думаю не стоит описывать то, как создаются задания. Для тех, кто только собирается — думаю после установки Вам даже не понадобится что — то искать в интернете — все очень просто и доступно. Правда есть одно НО — Cobian Backup не умеет выполнять скрипты PowerShell. Ну не беда — зато знает что такое BAT. Для запуска используем следующий BATник


TIMEOUT /T 5 /NOBREAK
%SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.exe -ExecutionPolicy ByPass -command "C:\ToTelegram.ps1"

ToTelegram.ps1 — это скрипт, который мы ранее создали в PowerShell. После создание bat файла можно уже и добавить его выполнение в задание. В параметрах задания выпираем пункт меню "Доп.действия" и добавляем в завершающие действия наш BAT файл.


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


P.S. Мои потребности этот скриптик удовлетворяет, но я буду очень рад, если кто-то внесет свои предложения и замечания.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331870/


Метки:  

IBM Bluemix в университетах: примеры реализованных проектов от студентов и преподавателей

Среда, 28 Июня 2017 г. 19:02 + в цитатник


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

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

В МГТУ им. Баумана на базе лаборатории Интернета вещей и кафедры «Компьютерные системы и сети» под руководством доцента А.Ю. Попова проводятся исследования и разработки студентов по созданию решений, имеющих практическую значимость. Студенты МГТУ реализуют свои проекты также и в рамках хакатона, регулярно проводимого вузом совместно с компанией IBM. Некоторые проекты выложены в YouTube, и мы можем с ними ознакомиться. В ходе работ над проектами использовались API, сервисы и протоколы, предоставляемые IBM бесплатно университетам по программе Академическая инициатива на академическом хабе (IBM ОТН).

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




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



Торфяные пожары стали постоянной угрозой и головной болью, иногда в буквальном смысле, многих российских городов, включая Москву. Андрей Комаров и члены его команды, участвовавшие в хакатоне, разработали систему раннего обнаружения такого пожара. Как устроена и работает система, можно увидеть по ссылке. Эта же команда сделала систему удаленного учета расхода воды со счётчиков.




Интернет-торговля становится всё более популярной. Однако бывает сложно отследить доставку. А иногда и пропажу покупки. Студенты Бауманки Владислав Шутеев и Валентин Иванов предлагают принципиально новую трекинговую систему почтовых отправлений и грузов на основе Интернета вещей.




Студент из Киргизии Чоро Абдыманапов, обучающийся в МГТУ, заинтересовался практической задачей использования Интернета вещей для разведения рыбы в рыбоводческом хозяйстве, расположенного в селе Таш-Добе. Созданное им решение легло в основу его дипломного проекта, успешно защищенного в июне. Об устройстве предложенной им системы, повышающей продуктивность рыбоводства, он сам рассказывает в видеоролике.

Студенты Харьковского национального университета радиоэлектроники под руководством профессора В. И. Саенко, кафедра Информационных управляющих систем, разрабатывают курс по обучению работе с IBM Bluemix. Команда Vindict team в составе Анны Каневской, Богдана Горбатенко и Владислава Стёпина создала ресурс Bug Trace для поддержки пользователей, только начинающих осваивать платформу. К настоящему времени командой создано и опубликовано 6 видеосюжетов курса. Первый – начало работы.




Он посвящён реализации небольшого проекта с регистрацией и активацией бесплатного аккаунта, доступного по программе «Академическая инициатива».

Урок 2 содержит инструкцию по созданию первого приложения.




В уроке 3 подробнее разбирается взаимодействие с базой данных MySQL, как сервисом IBM Bluemix.




Урок 4 демонстрирует альтернативный вариант работы с IBM Bluemix через командную строку.




Урок 5 посвящен созданию простейшего сайта




В уроке 6 реализуются все сделанные на предыдущих уроках наработки для разработки практически значимого проекта — сайта турфирмы.




Пожелаем работе университета успешного продолжения и развития.

И, наконец, инициативная группа сотрудников IBM и университетов работает над проектом облачного когнитивного университета IBM Watson. Ресурс размещен на developerWorks и имеет целью создание курса по изучению когнитивных технологий и Интернета вещей для студентов. Присоединиться могут любые желающие, готовые внести свой вклад в совместную работу. Для этого необходимо обратиться к модератору alexander_sorokin@ru.ibm.com.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331868/


Метки:  

Научи бота! — разметка эмоций и семантики русского языка

Среда, 28 Июня 2017 г. 18:18 + в цитатник
Со всех сторон на нас сыпятся перспективы светлого роботического будущего. Или не очень светлого, в духе Матрицы и Терминатора. В самом деле — машины уже уверено справляются с переводами, не хуже и намного быстрее людей распознают лица и предметы окружающего мира, учатся понимать и синтезировать речь. Круто? Не то слово!

Но дело серьёзно осложняется тем, что компьютеры так и научились ориентироваться в нашем мире. Всё, что они так хорошо делают, они делают по аналогии, не вдаваясь в суть и не нагружая себя смыслом происходящего. Может оно и к лучшему — дольше проживём, не будучи порабощены бездушным племенем машин.

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

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


Не хочу читать, покажите результат!


Можно сразу попробовать обучить бота по ссылке: Научи бота!

Если понравится отвечать — создайте свою Карту и результат будет запоминаться.

Ограничения дистрибутивной семантики


мем про дистрибутивную семантику, word2vec, робот, кофе

В чём, собственно, проблема понимания компьютером текстов, ведь машина может изучить всё текстовое культурное наследие и научиться всему оттуда? Лучше слов расскажет результат работы word2vec.

Для лексемы «мужчина»:
женщина 0.650
замужний 0.594
немолодой 0.542
антимужчина 0.538

беременный 0.519
нерожавший 0.516
девушка 0.498
...

Или для слова «горячий»:
теплый 0.510

холодный 0.498
остыть 0.486
жаркое 0.467
...

А для сильноположительной эмоции «восторг»:
восхищение 0.715

негодование 0.609
ярость 0.597
ужас 0.586
отчаяние 0.584

трепет 0.531
смятение 0.523
недоумение 0.522

бешенство 0.472
...

Или для широкого понятия «техника»:

технология 0.569
искусство 0.451
мастерство 0.410

самолётостроение 0.393
индустрия 0.392
медицина 0.379
ремесло 0.375

промышленность 0.370

знание 0.360
наука 0.358
...

Собственно эти примеры ярко показывают, сколько информации даёт контекст. Достаточно много, но явно недостаточно, чтобы разводить антонимы, часть-целое, общее-частное, делать различие между вертикальными и горизонтальными связями.

Поэтому, вполне разумно, что многие исследователи наряду с подходами дистрибутивной семантики (читай: word2vec) используют тезаурусы. Для английского языка таким ресурсом является WordNet, для русского — РуТез, Викисловарь.

Очевидное не так очевидно


мем про семантику, Король Лев

Каждый исследователь, решившийся на дерзкую попытку объяснить машине смыслы, рано или поздно столкнётся с тем, что самые казалось бы тривиальные вещи компьютеру совершенно неочевидны. Более того, даже в детских книжках о них не написано ни слова. Мир, в целом ряде аспектов, познаётся нами через наши органы восприятия — посредством зрения, слуха, обоняния, осязания, вкуса и других.

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

Эмоции, чувства, переживания


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

Сложность с фиксацией таких тонких характеристик слов в том, что они предельно субъективны и плохо формализуемы. Скажем, слово стратегия — оно положительное или нейтральное? Согласиться можно лишь с тем, что не отрицательное.

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



Что делать?


Вручную создать такого рода словарь было бы крайне трудоёмко, ведь размечать хочется не только слова, но и словосочетания. К тому же все оценки будут сильно привязаны к субъективному мнению исследователя.

Хорошие новости! мы живём в 2017-ом году и нам доступны такие замечательные технологии, как Интернет и краудсорсинг. Последний позволяет одновременно справляться как с проблемой трудоёмкости, так и c субъективностью оценок. Конечно это рождает эффект «среднего по больнице», но для первого приближения мы позволим себе закрыть глаза на неровности такого рода.

Научи бота! — разметка эмоций и семантики русского языка


Идея реализована на языковой платформе Карта слов. Работа будет вестись по нескольким направлениям:

  • Оценочная разметка. Задача — разметить слова и выражения русского языка по критериям положительное/нейтральное/отрицательное и силе выраженности признака.
  • Эмоциональная разметка. Задача — разметить эмоционально окрашенные слова и выражения по поляризации и силе эмоционального фона.
  • Разметка тезауруса. Задача — разметить вертикальные и горизонтальные связи между словами, проставить семантические теги для слов и выражений.
  • Экспериментальная разметка отношений по теории „Смысл <=> Текст“, предложенной И. А. Мельчуком: MAGN(кофе) = крепкий кофе, MAGN(чувство) = сильное чувство и т.д.

Чтобы использовать человеческий труд с максимальной пользой и сделать задания интересными для отвечающих, применяются подходы дистрибутивной семантики и машинное обучение. За основу системы семантических категорий мы взяли классификацию, используемую для НКРЯ.

Как принять участие?




Важная цель нашей инициативы — восполнение недостающих лингвистических ресурсов для русского языка, открытых для использования исследователями, учёными-лингвистами и инженерами-практиками. Мы рассчитываем, что основываясь на данных разметки будут проведены интересные исследования, написаны научные статьи, статьи на Хабре, появятся инженерные продукты и открытые технологии.

Вы можете помочь проекту следующими способами:

  • Участвовать в обучении бота. Это легко и увлекательно, а также позволяет прокачивать своё языковое сознание и подмечать интересные особенности русского языка.
  • Лайк, шер, Алишер! Делитесь ссылками на проект в социальных сетях, расскажите о нём в своём блоге или на сайте.
  • Конструктивная критика помогает развиваться и не погружаться в болото собственных иллюзий. Обсуждение очень важно, чтобы вовремя корректировать курс и создавать действительно полезный ресурс. Единственное пожелание: критикуете — предлагайте.
  • Семантика и когнитивная лингвистика. Мы стараемся прокачать своё понимание современных подходов к семантике и созданию такого рода ресурсов. Будем рады совету или рекомендации, что почитать, что изучить, с кем посоветоваться.
  • Распространение информации. Нам пригодится ваш совет о том, где ещё можно рассказать о проекте — это может быть ваш любимый техноблог, онлайн-журнал о технологиях, группа во ВКонтакте/Слаке/Телеграме или что-то другое.

Открытые данные


Агрегированные результаты разметки будут открыты для скачивания и доступны по лицензии CC BY-NC 4.0.

Получить и опубликовать первые результаты мы рассчитываем к середине/концу июля — всё будет зависеть от активности отвечающих. Чтобы ничего не пропустить, ставьте звёздочки и подписывайтесь на наш гитхаб:

Открытые данные на Карте слов

Где деньги, Зин?


Здорово попробовать совместить в одном проекте краудсорсинг и краудфандинг, что мы и сделали, запустив кампанию по сбору средств на Планете.ру:

Научить компьютер понимать наш мир и эмоции



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

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

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

Не забывайте, что вы можете помочь инициативе и без денег. Ставьте лайки и рассказывайте о проекте в социальных сетях — это очень простой, совершенно бесплатный, но очень действенный способ продвижения.

И помните...
Выбор всегда за вами.

image

Корпорейт спонсоршип


Вы представляете устоявшийся бизнес и вам интересно развитие открытых лингвистических данных в России? Становитесь корпоративным спонсором проекта! Вы получаете вечную графическую ссылку со страницы проекта, дополнительную рекламу на многотысячную аудиторию и неземной респект от сообщества.

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

Коммерческое использование


По вопросам коммерческого использования или бизнес-специфичной разметки пишите на kartaslov@mail.ru или в ЛС автору статьи.

Благодарности


Большую благодарность хочется выразить организаторам и участникам Диалога-2017 — 23-ей международной конференции по компьютерной лингвистике и интеллектуальным технологиям.

Именно в кулуарных обсуждениях мероприятия стала понятна необходимость такого рода разметки, а также собрана группа единомышленников для обсуждения экспериментальной разметки отношений по теории „Смысл <=> Текст“. Хочется надеяться, что в следующем году, основываясь на собранных данных, можно будет запустить новое интересное соревнование в рамках Dialogue Evaluation.

Ссылки


  1. Научи бота! на Карте слов
  2. RusVectores: готовые word2vec модели для русского языка
  3. Тезаурус русского языка РуТез (RuWordNet)
  4. Викисловарь
  5. О лексико-семантической информации в НКРЯ
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331582/


Метки:  

WannaCry и Petya — как действует центр мониторинга и реагирования на кибератаки в случае глобальных инцидентов

Среда, 28 Июня 2017 г. 17:44 + в цитатник
В свете последней истории с вирусом-шифровальщиком Petya мы не хотим в очередной раз рассказывать, как от него защититься, таких рекомендаций в интернете уже десятки. Мы хотели бы поделиться, как в таком случае функционирует SOC, какие шаги он должен предпринимать для предупреждения и реагирования на глобальные инциденты.



Превентивные мероприятия


Petya, как и его предшественник WannaCry, использует уязвимость EternalBlue, но не ограничивается ей, поэтому те компании, которые установили соответствующие обновления от Microsoft, повысили свой уровень безопасности.

Атака и реагирование


15:00 МСК. Первые сообщения об атаке на крупные организации. Аналитики Solar JSOC начинают мониторинг в поисках подробностей, одновременно производится анализ ситуации у заказчиков. Первая линия переведена в состояние повышенной бдительности, осуществляется ручной мониторинг IPS, WAF, Anti-DDoS и периметровых сетевых устройств на предмет выявления аномалий.

Параллельно по партнерским каналам и со стороны антивирусных вендоров начинает приходить обрывочная информация, что работает вредоносный продукт Petya. Канал распространения – предположительно EternalBlue.

Работа была разделена еще на несколько направлений:

  • Оповещение клиентов по первым появившимся индикаторам работы и мероприятиям.
  • Фокусное общение с технологическими и техническими партнерами для обмена первыми результатами о разборах вируса.
  • И – несколько нетипично – активное отслеживание СМИ и форумов вендоров и CERT для поиска дополнительной информации и индикаторов. К этой части работы привлекли, в том числе, наш маркетинг, который мониторил ленту Facebook, «взорвавшуюся» информацией о заражениях.

15:30 МСК. Получены первые индикаторы – первичное заражение организации шло через почтовый фишинг, имеются сетевые индикаторы и MD5 тела вируса. Данная информация оперативно проверяется на всех заказчиках в течение 30 минут. Параллельно сервис-менеджеры совершают звонки ответственным специалистам заказчика.

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

Клиенты получили оповещение о необходимости блокировки указанных адресов на сетевом оборудовании.

15:50 МСК. Создается инструкция по минимизации рисков, связанных с распространением Petya. В инструкции указаны основные меры:

  1. Обновление ОС Windows и баз АВС.
  2. Закрытие TCP-порта 445 там, где это возможно и не нарушает штатного функционирования сервисов.
  3. В некоторых случаях может оказаться эффективной защита MBR от перезаписи.

Делается рассылка клиентам.

Гизар Шакиров, начальник Отдела ИБ БАШКОМСНАББАНК (ПАО):
В 15:40 мы получили первый звонок от аналитика с оповещением о том, что наблюдается массовое заражение инфраструктур крупных компаний сферы энергетики, нефтегазового, финансового сектора и ретейла. Эпидемия очень похожа на WannaCry, но возможны новые каналы распространения. Каналом попадания, по первым предположениям, является почта. Сервис-менеджер предупредил, что дальнейшее распространение в инфраструктуре, возможно, происходит не только с помощью эксплуатации EternalBlue, обновления к которой у нас стояли.

Также в течение 10 минут была получена рассылка от Solar JSOC с результатами ретроспективного анализа и сетевыми индикаторами, которые необходимо было внести в черные списки на периметровых средствах защиты. Мы заранее предупредили ответственных специалистов банка, поэтому, как только оповещение пришло, внешние адреса были заблокированы в течение 5 минут.


16:30 МСК. Первые выводы о работе вредоносного ПО.

На хост изначально попадает дроппер, состоящий из нескольких компонент:

  • Модифицированная версия криптолокера Misha и Petya.
  • Модуль-сканер, выявляющий потенциально уязвимые к EternalBlue хосты.
  • Модуль, использующий для распространения связку PsExec+Mimikatz (дамп паролей и распространение по windows-машинам в сети через штатную утилиту удаленного администрирования Microsoft, для работы которой нужен открытый 445 порт).

Попадая на хост, вирус пытается повысить привилегии до Системы. В случае успеха – рестарт и шифрование MFT. В случае неуспеха – шифрование файлов (как стандартный криптер).

Спустя некоторое время выявляется второй канал распространения в инфраструктуре – PsExec+Mimikatz. Чуть позже еще один – удаленный доступ к консоли WMI (Windows Management Instrumentation).

Инструкция дополняется следующей информацией:

  1. Блокировка запуска ПО «PSEXEC.EXE» на потенциально уязвимых машинах.
  2. В качестве временной меры – отключить удаленный доступ к WMI.

Гизар Шакиров, начальник Отдела ИБ БАШКОМСНАББАНК (ПАО):
После получения информации о дополнительных способах распространения, критичные сегменты и хосты были временно изолированы по 135, 445, 1024-135 портам, либо поставлены на особый контроль. Solar JSOC сообщил о том, что антивирусный вендор, чье решение используется в банке, выпустил сигнатуры для детектирования известных сэмплов Petya. Оперативно было выполнено принудительное обновление на всем парке защищаемых машин, и запущена полная проверка на критичных хостах.

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

Гизар Шакиров, начальник Отдела ИБ БАШКОМСНАББАНК (ПАО):
На ночное время мы согласовали с коллегами из JSOC нештатный режим работы, в рамках которого по инцидентам, связанным с аномальной сетевой либо хостовой активностью и вирусными заражениями, помимо штатного оповещения ответственных специалистов банка звонок поступал бы сразу мне для организации оперативного реагирования и проведения проверки по факту инцидента.

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

Благодаря всем перечисленным выше мерам и активному взаимодействию специалистов клиентов и команды Solar JSOC, удалось избежать любых активных заражений эпидемией Petya, как месяцем ранее – эпидемией WannaCry.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331860/


Метки:  

PETYA malware. Recovery is possible

Среда, 28 Июня 2017 г. 17:23 + в цитатник

27 июня в сети начали появляться сообщения о быстром распространении вредоносной программы – шифровальщика Petya, выполняющей шифрование данных на компьютере жертвы. Атаке подверглись крупные корпорации России, Украины, ЕС, США и ряда других стран. Специалисты компании BiZone провели подробный анализ работы вредоноса. Ниже приведены результаты исследования, а также рекомендации по его удалению с компьютера жертвы и восстановлению данных.

Распространение


Распространяется изначально несколькими способами, в том числе в виде почтового вложения (фишинговая рассылка).

Для последующего распространения внутри сети использует:
  • Уязвимость MS17-10, также, как и WannaCry;
  • Удаленный доступ к консоли WMI (Windows Management Instrumentation), команды вида
    wmic.exe /node:"" /user:"" /password:" process call create "C:\Windows\System32\rundll32.exe \"C:\Windows\perfc.dat\" #1
  • Утилиту PSEXEC от Microsoft (имена и пароли учетных записей собираются на зараженной машине с помощью утилиты, аналогичной по функциональности утилите «Mimikatz»; пароли в открытом виде получаются путем чтения памяти процесса lsass.exe.

Шифрование


Для затруднения последующего анализа Petya очищает системные журналы событий и журнал файловой системы с помощью команды:
wevtutil cl Setup & wevtutil cl System & wevtutil cl Security & wevtutil cl Application & fsutil usn deletejournal /D %c:

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

Шифрование системы может производиться двумя различными способами:

1. Шифрование таблицы размещения файлов $MFT (NotPetya)
Вредоносный файл записывает свой код в MBR и последующие несколько секторов (оригинальный MBR при этом сохраняется в 34 секторе в зашифрованном виде (xor 0x07)). Далее вызывается перезагрузка системы (с помощью команд “schtasks” и “at”)и при последующем включении выводится экран о работе утилиты CHKDSK. На самом деле в этот момент происходит шифрование $MFT с использованием криптографически стойкого шифра Salsa20 (код c схож с оригинальным Petya). Особенность данного способа в том, что шифруются записи о файлах, а не само содержимое файлов. Восстановление данных возможно.

Способы восстановления данных:
  • Вручную. Возможен поиск файлов на диске по сигнатурам, однако данный способ работает только для нефрагментированных файлов, при этом имя файла не восстанавливается. Следующий применимый способ, это поиск файловых записей по сигнатуре “FILE”, получение списка кластеров, принадлежащих файлу, таким образом восстанавливается содержимое и имя файла. Также в ходе наших исследований был разработан метод восстановления выборочных файлов с помощью восстановления нерезидентного списка секторов, принадлежащих файлу (Data Runs). Данный метод основан на следующей концепции: выполняется поиск кластера содержащего начало файла (поиск производится по сигнатуре), далее номер этого кластера используется для поиска нерезидентного списка секторов, принадлежащих файлу. С помощью описанных методов, можно восстановить файлы большого размера, которые нельзя восстановить поиском по сигнатуре и автоматическими средствами.
  • Автоматический: R-Studio, GetDataBack, и др.
  • Восстановление MBR возможно с командой “bootrec /FixMbr” до перезагрузки системы (Vista+, в случае Windows XP можно использовать команду “fixmbr”).
  • Восстановление MBR после перезагрузки, но до шифрования. Необходимо извлечь оригинальный MBR из 34 сектора (0x4400 смещение на диске, размер 0x200) расшифровать (xor 0x07) и записать в начало диска.

2. Шифрование файлов (Misha)
При невозможности получения привилегий в системе для перезаписи MBR, производится шифрование файлов без перезагрузки. Список шифруемых расширений файлов:

3ds, 7z, accdb, ai, asp, aspx, avhd, back, bak, c, cfg, conf, cpp, cs, ctl, dbf, disk, djvu, doc, docx, dwg, eml, fdb, gz, h, hdd, kdbx, mail, mdb, msg, nrg, ora, ost, ova, ovf, pdf, php, pmf, ppt, pptx, pst, pvi, py, pyc, rar, rtf, sln, sql, tar, vbox, vbs, vcb, vdi, vfd, vmc, vmdk, vmsd, vmx, vsdx, vsv, work, xls, xlsx, xvd, zip. 

Способы расшифровки в настоящее время неизвестны, возможно лишь восстановление из резервных копий, например, из Volume Shadow Copy, Restore points, File History.

Платить выкуп не рекомендуется, так как почтовый ящик злоумышленников был заблокирован. В настоящее время вызывает сомнение техническая возможность расшифровки данных, а также нет подтверждённых случаев успешной расшифровки.

Почему возможно восстановление данных?


NotPetya шифрует только файловую таблицу, но не сами файлы, поэтому восстановить файлы после этого шифровальщика возможно. До шифрования структура файловой системы выглядит следующим образом:



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



Таким образом все методы восстановления данных, основанные на карвинге, (Carving) продолжают работать. Также идентичные записи MFT хранятся в разных частях файловой системы. Они могут попадать в файл hiberfil.sys, в файлы директорий и MFTmirr и т.п. Поэтому, собрав все целостные записи MFT возможно восстановить даже фрагментированные файлы.

Индикаторы


При заражении системы с использованием ПО «PSEXEC» в директории Windows могут присутствовать следующие файлы:

«C:\Windows\perfc.dat»
«C:\Windows\dllhost.dat»

Рекомендации


  1. Установить необходимые для исправления уязвимости MS17-10 обновления Windows
  2. Отключить SMB1

Также для остановки распространения данного вредоносного ПО необходимо заблокировать запуск ПО «PSEXEC.EXE» с помощью средств локальной или групповой политики безопасности на потенциально уязвимых машинах, а также, если возможно, заблокировать, либо отключить удаленный доступ к WMI.

В ходе исследования была выявлена особенность, позволяющая предотвратить заражение через PsExec и WMI. Для этого достаточно создать пустой файл “C:\Windows\perfc”.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331854/


Метки:  

Как победить вирус Petya

Среда, 28 Июня 2017 г. 17:19 + в цитатник
Вслед за нашумевшей кампанией вируса-шифровальщика WannaCry, которая была зафиксирована в мае этого года, 27 июня более 80 компаний России и Украины стали жертвой новой атаки с использованием шифровальщика-вымогателя Petya. И эта кампания оказалась вовсе не связана с WannaCry. Эксперты Positive Technologies представили детальный разбор нового зловреда и дали рекомендации по борьбе с ним.



Жертвами вымогателя уже стали украинские, российские и международные компании, в частности, Новая Почта, Запорожьеоблэнерго, Днепроэнерго, Ощадбанк, медиахолдинг ТРК «Люкс», Mondelez International, TESA, Nivea, Mars, операторы LifeCell, УкрТелеКом, Киевстар и многие другие организации. В Киеве оказались заражены в том числе некоторые банкоматы и кассовые терминалы в магазинах. Именно на Украине зафиксированы первые атаки.

Анализ образца вымогателя, проведенный нашими экспертами, показал, что принцип действия Petya основан на шифровании главной загрузочной записи (MBR) загрузочного сектора диска и замене его своим собственным. Эта запись – первый сектор на жёстком диске, в нем расположена таблица разделов и программа-загрузчик, считывающая из этой таблицы информацию о том, с какого раздела жёсткого диска будет происходить загрузка системы. Исходный MBR сохраняется в 0x22-ом секторе диска и зашифрован с помощью побайтовой операции XOR с 0x07.

После запуска вредоносного файла создается задача на перезапуск компьютера, отложенная на 1-2 часа, в это время можно успеть запустить команду bootrec /fixMbr для восстановления MBR и восстановить работоспособность ОС. Таким образом, запустить систему даже после ее компрометации возможно, однако расшифровать файлы не удастся. Для каждого диска генерируется свой ключ AES, который существует в памяти до завершения шифрования. Он шифруется на открытом ключе RSA и удаляется. Восстановление содержимого после завершения требует знания закрытого ключа, таким образом, без знания ключа данные восстановить невозможно. Предположительно, зловред шифрует файлы максимум на глубину 15 директорий. То есть файлы, вложенные на большую глубину, находятся в безопасности (по крайней мере для данной модификации шифровальщика).

В случае, если диски оказались успешно зашифрованы после перезагрузки, на экран выводится окно с сообщением о требовании заплатить выкуп $300 (на 27 июня 2017 — примерно 0,123 биткойна) для получения ключа разблокировки файлов. Для перевода денег указан биткоин-кошелек 1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX. Через несколько часов после начала атаки на кошелек уже поступают транзакции, кратные запрошенной сумме – некоторые жертвы предпочли заплатить выкуп, не дожидаясь, пока исследователи изучат зловред и попытаются найти средство восстановления файлов.



На данный момент число транзакций увеличилось до 45.



Petya использует 135, 139, 445 TCP-порты для распространения (с использованием служб SMB и WMI). Распространение внутри сети на другие узлы происходит несколькими методами: с помощью Windows Management Instrumentation (WMI) и PsExec, а также с помощью эксплойта, использующего уязвимость MS17-010 (EternalBlue). WMI – это технология для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. PsExec широко используется для администрирования Windows и позволяет выполнять процессы в удаленных системах. Однако для использования данных утилит необходимо обладать привилегиями локального администратора на компьютере жертвы, а значит, шифровальщик может продолжить свое распространение только с тех устройств, пользователь которых обладает максимальными привилегиями ОС. Эксплойт EternalBlue позволяет получить максимальные привилегии на уязвимой системе. Также шифровальщик использует общедоступную утилиту Mimikatz для получения в открытом виде учетных данных всех пользователей ОС Windows, в том числе локальных администраторов и доменных пользователей. Такой набор инструментария позволяет Petya сохранять работоспособность даже в тех инфраструктурах, где был учтен урок WannaCry и установлены соответствующие обновления безопасности, именно поэтому шифровальщик настолько эффективен.

В рамках тестирований на проникновение современных корпоративных инфраструктур эксперты Positive Technologies регулярно демонстрируют возможность применения эксплойта EternalBlue (в 44% работ в 2017 году), а также успешное применение утилиты Mimikatz для развития вектора атаки до получения полного контроля над доменом (в каждом проекте).

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

О существующей угрозе компрометации мы сообщали более месяца назад в оповещениях об атаке WannaCry и давали рекомендации, каким образом определить уязвимые системы, как их защитить и что делать, если атака уже произошла. Дополнительные рекомендации мы дадим и в данной статье. Кроме того, наша компания разработала бесплатную утилиту WannaCry_Petya_FastDetect для автоматизированного выявления уязвимости в инфраструктуре. Система MaxPatrol выявляет данную уязвимость как в режиме Audit, так и в режиме Pentest. Подробная инструкция указана в наших рекомендациях. Кроме того, в MaxPatrol SIEM заведены соответствующие правила корреляции для выявления атаки Petya.

Эксперты Positive Technologies выявили “kill-switch” – возможность локально отключить шифровальщик. Если процесс имеет административные привилегии в ОС, то перед подменой MBR шифровальщик проверяет наличие файла perfc (либо другого пустого файла с иным названием) без расширения в директории C:\Windows\ (директория жестко задана в коде). Этот файл носит то же имя, что и библиотека dll данного шифровальщика (но без расширения).





Наличие такого файла в указанной директории может быть одним из индикаторов компрометации. Если файл присутствует в данной директории, то процесс выполнения ВПО завершается, таким образом, создание файла с правильным именем может предотвратить подмену MBR и дальнейшее шифрование.



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

С другой стороны, если процесс изначально не обладает административными привилегиями, то шифровальщик не сможет выполнить проверку наличия пустого файла в директории C:\Windows\, и процесс шифрования файлов все же запустится, но без подмены MBR и перезапуска компьютера.
Для того, чтобы не стать жертвой подобной атаки, необходимо в первую очередь обновить используемое ПО до актуальных версий, в частности, установить все актуальные обновления MS Windows. Кроме того, необходимо минимизировать привилегии пользователей на рабочих станциях.

Если заражение уже произошло, мы не рекомендуем платить деньги злоумышленникам. Почтовый адрес нарушителей wowsmith123456@posteo.net был заблокирован, и даже в случае оплаты выкупа ключ для расшифрования файлов наверняка не будет получен. Для предотвращения распространения шифровальщика в сети рекомендуется выключить другие компьютеры, которые не были заражены, отключить от сети зараженные узлы и снять образы скомпрометированных систем. В случае, если исследователи найдут способ расшифрования файлов, заблокированные данные могут быть восстановлены в будущем. Кроме того, данный образ может быть использован для проведения анализа шифровальщика, что поможет исследователям в их работе.

В долгосрочной перспективе рекомендуется разработать систему регулярных тренингов сотрудников с целью повышения их осведомленности в вопросах информационной безопасности, основанную на демонстрации практических примеров потенциально возможных атак на инфраструктуру компании с использованием методов социальной инженерии. Необходимо проводить регулярную проверку эффективности таких тренингов. Также необходимо на все компьютеры установить антивирусное ПО с функцией самозащиты, предусматривающей ввод специального пароля для отключения или изменения настроек. Кроме того, необходимо обеспечить регулярное обновление ПО и ОС на всех узлах корпоративной инфраструктуры, а также эффективный процесс управления уязвимостями и обновлениями. Регулярное проведение аудитов ИБ и тестирований на проникновение позволит своевременно выявлять существующие недостатки защиты и уязвимости систем. Регулярный мониторинг периметра корпоративной сети позволит контролировать доступные из сети Интернет интерфейсы сетевых служб и вовремя вносить корректировки в конфигурацию межсетевых экранов. Для своевременного выявления и пресечения уже случившейся атаки необходимо осуществлять мониторинг внутренней сетевой инфраструктуры, для чего рекомендуется применять систему класса SIEM.

Для выявления атаки Petya в инфраструктуре могут быть использованы следующие индикаторы:

  • C:\Windows\perfс
  • Задача в планировщике Windows с пустым именем и действием (перезагрузка)
  • "%WINDIR%\system32\shutdown.exe /r /f"

Срабатывание правил IDS/IPS:

  • msg: "[PT Open] Unimplemented Trans2 Sub-Command code. Possible ETERNALBLUE (WannaCry, Petya) tool"; sid: 10001254; rev: 2;
  • msg: "[PT Open] ETERNALBLUE (WannaCry, Petya) SMB MS Windows RCE"; sid: 10001255; rev: 3;
  • msg: "[PT Open] Trans2 Sub-Command 0x0E. Likely ETERNALBLUE (WannaCry, Petya) tool"; sid: 10001256; rev: 2;
  • msg: "[PT Open] Petya ransomware perfc.dat component"; sid: 10001443; rev: 1
  • msg:"[PT Open] SMB2 Create PSEXESVC.EXE"; sid: 10001444; rev:1

Сигнатуры:

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331858/


Метки:  

[Из песочницы] Разработка браузерной онлайн-игры

Среда, 28 Июня 2017 г. 16:46 + в цитатник
Привет, хабровчане. Меня зовут Евгений, по профессии я backend-разработчик и пишу я на языке c# в сегменте enterprise приложений. В этой публикации я хочу рассказать вам о своём опыте в не совсем профильной для меня сфере — разработке видеоигр, а конкретнее — о разработке браузерной онлайн-игры.

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

Примерно год назад мне показали довольно популярную браузерную онлайн-игру — слитерио. После ознакомления у меня появилась навязчивая идея — мне захотелось сделать что-то похожее по подходу, но с чуть более продвинутым геймплеем. Спустя пару месяцев идея сформировалась в тему этой публикации — игру World of Frogs.



Суть игры — вы управляете лягушкой, можете нападать на других игроков, а также на управляемые компьютером объекты — мух, тараканов, болотных лягушек. Мухи не умеют нападать и умирают с одного удара, тараканы нападают лишь обороняясь, болотные же лягушки нападают как на мух, так и на игроков.

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

Основные пункты, от которых я отталкивался:

  1. С клиентской стороны никакого Flash, только html + js;
  2. Одна машина должна тянуть как можно больший онлайн игроков;
  3. Возможность горизонтального масштабирования;
  4. Низкий порог вхождения в игру и быстрый старт;
  5. Чуть более разнообразный геймплей, чем в слитерио;
  6. Красивый и запоминающийся домен;

Далее, подробней по каждому из пунктов.

1) Клиентский код


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

Изначально взгляд упал на pixi.js — это движок, по которому немало документации, о котором положительно отзываются в плане производительности и вообще всячески хвалят.
Однако углубившись в поиски, я остановился на phaser.js (о нём уже были статьи на хабре) — это более высокоуровневая библиотека, которая позволила мне забыть о многих нюансах и сосредоточиться непосредственно на игровой логике.

Движок позволил без особых проблем прикрутить анимации, бэкграунд текстуру, камеру, границы мира и многое другое. И всё бы хорошо, но когда настало время проверять работу на других компьютерах, с другими операционными системами, выявились следующие проблемы:

1.1 Главная из проблем — фоновая текстура (tilesprite) жутко тормозит на windows 7
Выяснил я это с рабочего компьютера после первого деплоя на хостинг — ФПС был очень и очень низким — в районе 5. И так было во всех браузерах кроме, на удивление, IE — в нём всё работало вполне прилично, пускай и не идеально.

До того, что тормозит бэкграунд я додумался далеко не сразу — первым делом, я, методом тыка выяснил, что игра резко перестаёт тормозить при уменьшении размера окна браузера. Нагуглить по что-то по таким симптомам мне не удалось, поэтому я, профилактики ради, решил внедрить часть практик, которые советуют ребята из Mozilla — в частности, использование Object Pool (переиспользование игровых объектов). Особых успехов такого рода оптимизациями я не достиг, а профилировщик по-прежнему показывал что больше всего ресурсов съедает рендеринг.

Тогда, прибегнув к постепенному отключению отображения различных элементов игры я и выявил виновника — tilesprite.

Погуглив по tilesprite я выяснил, что такая проблема не у меня одного, и причина кроется в том, что canvas перерисовывается полностью при любом изменении — т.е. маленький объект сдвинулся — перерисоываем весь канвас, включая фон, что даёт нам высокий расход на отрисовку.

В попытке решить эту проблему я вынес фон на отдельный канвас с меньшим z-index, чтобы он перерисовывался отдельно, независимо от движущихся объектов — особых результатов это не дало.

В конечном итоге я решил отказаться от phaser.js и работать напрямую с canvas, созданным для отрисовки фона — в результате ФПС вырос примерно до 20.

1.2 Разные версии phaser — разная производительность в разных операционках
После изменения принципа отрисовки фона с производительностью всё стало намного лучше, но 20 ФПС — это всё ещё не желаемые 60 — было над чем поработать. Путём тыканья пальцем в небо было выяснено, что phaser версии 2.4.6 работает быстрее на windows 7, а версии 2.6.2 быстрее на windows 10. На линухе и маке обе версии показали себя одинаково хорошо.

Пришлось добавить условие, которое подключало ту или иную версию библиотеки в зависимости от браузера пользователя — это повысило ФПС на моей рабочей машине до 25-30. Выше поднять ФПС у меня так и не получилось — на этом я решил остановиться, т.к. после опроса друзей/знакомых, у которых стоит семёрка, сложилось впечатление, что проблема редкая, да и уже не такая серьёзная как изначально.

Описанное в этих двух пунктах — это не единственные, но основные и наиболее запомнившиеся проблемы, связанные с phaser.js — всё остальное прошло в общем-то гладко.

Также стоит отметить, что на разных машинах с windows 7 производительность была разной — кое-где и без всех моих телодвижений всё было хорошо, где-то же наблюдались проблемы аналогичные тем, что я наблюдал — какой-либо корреляции я установить не смог


2) Производительность одного инстанса игрового сервера


Здесь начать стоит с того, какая в целом архитектура у приложения, которое служит как игровой сервер. Было решено использовать следующую схему:

Параллельно от разных игроков принимаются сообщения по websocket и закладываются на обработку основному потоку, который обновляет игровую логику. Основной поток работает итерациями по 40мс, в рамках которых обновляет передвижение, видимость, респавн NPC, прогресс использования способностей и т.п.

Запись данных в базу происходит асинхронно — поток обновления игровой логики закладывает сообщения в очередь другому фоновому потоку, который их группирует и пачками пишет в базу.

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

Если отобразить на схеме, то верхнеуровнево серверная архитектура выглядит так:



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

Самым серьёзным бустом к производительности был отказ от использования SignalR, т.к. он не поддерживает бинарный протокол, а на сериализацию в json уходило вычислительных ресурсов больше, чем на всю остальную логику игрового сервера вместе взятую. Остановился в итоге на использовании Fleck, т.к. он поддерживает бинарный формат, а также позволяет отключить алгоритм Нэйгла.

3) Возможность горизонтального масштабирования


Будучи оптимистом я решил заранее заложиться на то, что игра всем понравится и в неё захочет играть множество людей. В рамках одной машины можно долго заниматься оптимизациями, можно бесконечно апгрейдить железо, можно переписать приложение на чистом си с ассемблерными вставками для микрооптимизаций, но всё равно рано или поздно упрёшься в потолок. Было решено иметь архитектуру, позволяющую иметь множество серверов малой мощности, на каждом из которых потолок по онлайну в районе 200-300 человек.

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

На текущий момент в выборе сервера из пула используются простая логика — берётся сервер с минимальным онлайном. В дальнейшем планируется также добавить логику учёта местоположения клиента и сервера.

4) Низкий порог вхождения в игру и быстрый старт


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

Я хотел обеспечить вход по одному клику мыши с главной страницы, т.е. никакой обязательной регистрации. В том же слитерио используется похожий подход, за одной небольшой разницей — от игрока всё же хотят, чтобы он ввёл ник.

Т.к. онлайн игра как правило предполагает возможность отличать одного игрока от другого, я решил использовать подход никогенерации — при входе в игру берётся случайное прилагательное из заранее заданного списка и комбинируется с случайным существительным, что выдаёт ники вида Неспящий Бугай, Жадный Бурундук, Могучий Валенок и т.п…

image

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

Для более быстрого погружения на главную страницу было добавлено обучающее видео, а в саму игру были добавлены тултипы, выплывающие при изучении новых способностей.

5) Чуть более разнообразный геймплей, чем в слитерио


Как бывший поклонник игры WoW, я хотел разнообразить игру, внеся в неё такие элементы как набор опыта, рост по уровням, получение новых способностей по мере роста, PvE, PvP.

Игроку доступно к использованию 6 способностей (1-я доступна сразу, 2-4 становятся доступны по мере роста по уровням, а 5-6 оформлены как одноразовые поверапы — их можно поднять на игровом поле):

  1. Удар языком — лягушка выстреливает языком и наносит малый урон первой цели на пути;
  2. Прыжок — лягушка прыгает в указанном направлении и в месте приземления наносит высокий урон. Высокий урон способности компенсируется сложностью попадания, а также длительной задержкой между использованиями;
  3. Щит — в течение 3-х секунд поглощает 2 следующие вражеские атаки;
  4. Плевок — лягушка выплёвывает снаряд, который наносит средние повреждения всем врагам на траектории движения);
  5. Лечение — восстанавливает половину жизни;
  6. Ускорение — увеличивает скорость передвижения на 100% на 4 секунды;



Для возможности немного выделиться была добавлена возможность выбрать другую модель игрового персонажа.

6) Красивый и запоминающийся домен;


Изначально в планах было разместить игру на домене .io, аналогично слитерио, агарио и многим другим играм такого формата. Банальные frog.io и frogs.io были заняты, а чего-то более подходящего в .io подобрать не удалось. Играясь с доменами, содержащими frog, наткнулся на весьма удачный вариант — frogs.world, на котором сейчас проект и живёт. Довольно-таки непривычный домен первого уровня, но зато легко запоминается.

Спасибо за внимание. Надеюсь, что кому-то мой опыт будет полезен.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331852/


Метки:  

Чем грозит преждевременная автоматизация

Среда, 28 Июня 2017 г. 15:29 + в цитатник

image

 

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


Начнем с вредного


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


Из-за ограничений технологии распознавания и возможности робота понимать живую речь получилось громоздко и неудобно. Клиентам приходилось использовать строго заданный набор слов (чтобы робот их понимал). Для этого составили подсказки для «правильных» ответов на поставленный роботом вопрос. Несмотря на инструкцию, робот переспрашивал, правильно ли он понял решение человека.


Все это сделало общение с машиной крайне утомительным и неприятным для людей, и помощника тихо погасили, заменив старым добрым IVR с передачей решений человека по DTMF. И правильно сделали.


Кстати, о DTMF. Еще один неудачный пример автоматизации — объединенный сервис рекомендаций и бронирования, в котором клиенту нужно провзаимодействовать с роботом-ассистентом, выпытывающим предпочтения и на их основе предлагающим различные варианты досуга.


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


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


Оба кейса объединяет одно: интеллект ассистента и ограничения технологии не позволяют строить сложные дискуссии с автоматизированной системой по телефону. Люди быстро устают от механического помощника и пытаются соединиться с живым оператором. Либо просто отказываются от использования.


Запилим автоматизацию с распознаванием и роботами


Как же понять, что пора браться за автоматизацию с использованием этих технологий? Если на все вопросы из списка ниже можно ответить утвердительно, значит, время пришло:

  • автоматизация принесет пользу продукту, за которую определенная аудитория захочет платить?
  • она снизит/устранит барьеры при использовании продукта?
  • точно не привнесет новых проблем и барьеров?
  • предусмотрены все точки касания в пользовательском интерфейсе — от типового кейса до нестандартного, например, реакция системы на ошибки?

Добавить общение с роботом можно, если он сможет ответить на ряд вопросов и разгрузить службу поддержки. Поставить робота перед продавцом — практически подарить клиента конкуренту.


Еще несколько рекомендаций, которые помогут при внедрении технологии Text-to-speech:

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

А вот на что стоит обратить внимание при использовании обратной технологии, Speech-to-text:

  • качество распознавания должно чуть превышать порог, при котором система сможет неверно истолковать пользователя;
  • если качество распознавания не очень высокое, то нужно продумать структуру диалога так, чтобы ответы человека (и их вариации — например, согласие можно выразить множеством способов: от простого «угу» до какого-нибудь редкого «есть такое дело») были максимально разнесены по звучанию;
  • краткая инструкция для человека поможет ему отвечать понятнее для системы;
  • линейность диалога, а также переход на оператора поможет спасти от негатива.

Text-to-speech мы внедрили давно, на ее основе работает несколько инструментов Виртуальной АТС, а прямо сейчас тестируем Speech-to-text, о чем я писал в прошлом материале. Интерактивная обработка вызова поможет увеличить отдачу от этих технологий, например, с помощью Text-to-speech можно для каждого звонящего «на лету» готовить персональное приветствие или меню с индивидуальными опциями.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331838/


«Лаборатория Касперского»: Правильная защита «облаков»

Среда, 28 Июня 2017 г. 15:05 + в цитатник
Мы продолжаем публиковать материалы форума «Совместная безопасность облачных решений для бизнеса», который мы провели совместно с «Лабораторией Касперского» и HUAWEI 31 мая в Москве.

Сегодня, когда Petya и Misha вовсю шагают по планете, данный материал становится особенно актуальным для пользователей виртуальных серверов. Представляем доклад Владимира Островерхова, «Лаборатория Касперского», «Правильная защита «облаков»».







Всем здравствуйте, меня зовут Владимир Островерхов. На данный момент я являюсь экспертом поддержки корпоративных продаж «Лаборатории Касперского».

Функционально я частично являюсь разработчиком, тренером, технарем, обучающим человеком для локальных команд всего мира.

Начнем с несерьезной темы. Какие требования предъявляются к современной системе ИТ-безопасности и почему мы поднимаем сегодня тему безопасности облачных инфраструктур, виртуальной безопасности, защиты для виртуализации, для виртуальных машин?

Давайте начнем с самого простого — с тех вирусов, о которых вы все знаете. 97-ой год. У нас хватало работы. Каждый день приходило 20 новых сэмплов, они действительно были сложными, интересными, мы их разбирали буквально руками, писали «маски» и общие структуры детектов. И все было хорошо. Год назад я снова вернулся в «Лабораторию Касперского», пришел к своим бывшим коллегам и спрашиваю: «Ребята, а как сейчас обстоят дела?» Вот было 20-30 проблемных вирусов в день, которые приходилось изучать вручную. И мне показали цифры…


Сегодня каждый день появляется более 300 тысяч единиц вредоносного ПО. Да, в эту статистику попадают и совсем простые. Например, школьник узнал новый код на уроках информатики, написал какую-то программку, выпустил ее в интернет. Вирус? Вирус, потому что может испортить данные. Сюда включаются и сложные целенаправленные атаки, те, которые разрабатываются специально под организации, под определенные кейсы, под определенные ситуации, и они очень хорошо умеют не только ломать и воровать данные, но и очень хорошо умеют себя прятать. Это все требует расследований. Объем вырос в разы, в тысячи раз. Старый и глупый вопрос: «Касперский пишет вирусы?», сами видите их и так без нас пишут столько, что нам бы разгрести…

Второй момент. Позиция нашей компании — мы, конечно, продаем продукты и решения, но основная ценность — это те накопленные знания, которые есть в нашей компании, в действительности выражаются в решения. За эту экспертизу и ценят компанию, это определяет ее репутацию.

Ладно, идем дальше про страшилки. Чем хороша виртуализация, думаю, все знаете. Да? Высокая плотность, низкое ресурсопотребление, все это здорово, все это красиво, об этом рассказывают обычно вендоры виртуализации. Чем это плохо и опасно, и почему виртуальную инфраструктуру надо дополнительно защищать и вообще не надо забывать про защиту? Две трети компаний во всем мире, включая крупный бизнес, считают, что они инвестировали в виртуализацию и дополнительной защиты никакой не надо. Виртуалка сама по себе безопасная, все с ней хорошо, ее никто не ломает. Неправда, ломают и еще чаще!


Первое – до 80 процентов всех тех 300 тысяч единиц вредоносного ПО, о которых я говорил ранее, вообще без модификаций, без каких-то изменений могут жить внутри виртуальной инфраструктуры, внутри облаков. Ничего править не надо, попало, заработало, начало удалять, стирать, портить данные.

Хакерам тоже виртуальная инфраструктура интереснее. Намного проще взломать ее и получить доступ сразу ко всем вашим виртуальным машинам и ко всем данным, нежели пытаться взломать каждый физический сервер отдельно. Логично и довольно просто.

В третьих, необходимо обратить внимание на скорость распространения вирусов, попавших внутрь виртуальной машины. Внутри виртуальной инфраструктуры зловредный код распространяется с огромной скоростью. Заразить за 15 минут 10 тысяч виртуальных машин — легко. Как-то это надо останавливать. Это эпидемии огромных скоростей и огромных масштабов.

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


Идем дальше. Облака частные, гибридные, публичные из себя всегда представляют центр обработки данных. От этого никуда не деться. Есть серверы, есть сеть, есть система хранения данных — это стандартный набор, который работает, от которого никто никуда не уходит, он традиционен.

Основной фокус атаки зловредов — это серверы и СХД. Серверы — порча данных и работы приложений, СХД — порча или воровство информации. Сеть — это только транспорт.

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


А вот теперь немножко страшной статистики. Мы опросили порядка пяти тысяч компаний по всему миру. Это крупные компании, не менее полутора тысяч сотрудников, в 25 странах. Порядка 75 процентов из них уже используют виртуализацию, для крупного бизнеса – это стандартная тенденция, они все больше и больше верят в виртуализацию и внедряют у себя в ЦОДах. Статистика вендоров виртуализации показана на слайде. Интересно другое, порядка половины компаний не используют никакой защиты для виртуальных машин, а вторая половина считает, что хватит любого стандартного антивируса. Все эти компании в среднем тратят почти миллион долларов на восстановление после инцидентов: на расследование, на восстановление системы, на компенсацию затрат, на компенсацию потерь от одного единственного взлома. Как так то? Это 5 тысяч компаний и каждая из них потеряла по миллиону долларов в прошлом году? Статистика показывает «среднюю температуру по больнице». Например, есть большая компания, сервис-провайдер, один из самых крупных, пусть будет, в Испании. С ней работает очень много клиентов. Они подверглись единственному взлому в прошлом году.

Какими будут их траты в случае, если они себя скомпрометируют? Прямые потери на восстановление, замену оборудования, софта… Косвенные потери — репутация… Потери на компенсацию для их клиентов, в том числе и репутации… А еще расследование инцидентов, частичная замена инфраструктуры, потому что она уже себя скомпрометировала, это диалоги с правительствами, это диалоги со страховыми компаниями, диалоги с заказчиками, которым приходится платить компенсации.

Надо прекрасно понимать, что в среднем крупный бизнес теряет в год порядка 800 тысяч при неправильно организованной защите – это потенциальный риск для большой компании, риск потери около миллиона долларов в год. Для маленькой компании это около 100 тысяч долларов в год. Это та статистика, которую мы видим, основанная на живых инцидентах среди организаций. Это действительно страшные данные, с ними действительно уже приходится считаться, и от них никуда не денешься. И это встречается во всем мире, 25 стран, я думаю, более-менее подтверждают это.

Теперь про защиту. Со страшным пока закончили. Существует всего четыре подхода к построению системы защиты. Кто бы что ни придумал, кто бы что ни говорил. Первое — отсутствие защиты, это тоже своего рода защита, это вера, религия: «помолился-перекрестился» и все прошло. Надеюсь, это не ваш случай.

Второе — выбор в пользу традиционной защиты. Речь о стандартных антивирусах или традиционных защитных систем, разработанных для защиты физических устройств, не виртуальных.

Третье и четвертое — два способа специализированной защиты: безагентская защита и защита легким агентом. Это общая тенденция всего мирового рынка безопасности.

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


Без защиты, я думаю, не надо рассказывать. Все плохо, всех взломали, все потеряли. Хорошо, если кто-то использует этот подход к построению системы защиты и до сих пор не был взломан, удачи…


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


Высокая ресурсоемкость. Тут все просто — мы ставим традиционный движок в каждую из виртуальных машин. Этот движок начинает дополнительно потреблять ресурсы виртуальной машины, а, следственно, и всей экосистемы. Раньше, до появления и активного использования виртуализции, был один физический сервер, на нем стояло одно приложение-антивирус, мы его не замечали — ресурсов было предостаточно. Сейчас на нормальном сервере можно поднять порядка 50 виртуальных машин, а использовать для защиты приходится 50 традиционных антивирусов. Эту нагрузку уже сложно не заметить. И я не говорю про VDI, где на том же физическом сервере можно развернуть порядка 150-300 виртуальных машин.


Шторма проверок. Что это такое? Какой-то вирус пришел в вашу компанию, начинает себя распространять по всем виртуальным машинам, по всей экосистеме. Каждая виртуальная машина с самостоятельным защитным ПО внутри, сканируя один и тот же файл, начинает потреблять еще больше ресурсов и таким образом тормозит процесс нормальной работы самого приложения, потому что для сканирования, для работы нужны ресурсы. Последствия очевидны…


Третье – шторма обновлений. Особенно актуально это для инфраструктуры больших компаний, особенно сервис-провайдеров, где действительно виртуальные машины измеряются десятками тысяч. Когда выходит обновление антивирусных баз, оно может быть 1-2-5 мегабайт, но все виртуальные машины в одну секунду, в одну наносекунду начинают скачивать этот 1-5 мегабайт. Хорошо, если есть дублирующие каналы. Если дублирующих каналов нет, как мы не раз видели, то часто идет просадка по сети у этих компаний. И она тотальная, она, может быть, случится в течение каких-то 20-30 секунд, но вот мой коллега из банковского сектора говорит, что наносекунды сейчас считают. 20-30 секунд — это уже потеря канала, это уже действительно большая просадка, это уже действительно плохо, что за эти 20-30 секунд весь мир не мог достучаться до этого центра обработки данных. Поэтому это плохо? Это традиционный подход. И это не вопрос того, что кто-то неправильно задизайнил традиционные решения, это воспрос использования традиционного решения не по назначению, не для физической, а для виртуальной инфраструктуры. Стандартные решения в специфических условиях. Это не плохие дизайны решений ИТ-безопасности, но плохие дизайны решений безопасности для виртуальных сред.


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


Неконтролируемые распространения. Здесь мы говорим про так называемые золотые образы. Как часто обновляется внутри компании золотой образ виртуальных машин? На самом деле раз в 3-5 месяцев. Потому что создали, сделали красиво, сделали оптимально, так и оставим. А вот копируются виртуальные машины, используя копии этого образа, очень часто. Если выходят обновления антивирусных баз, то в золотой образ, созданный и настроенный ранее, они автоматом не попадают, а копии виртуальных машин продолжают возникать, используя необновлённый золотой образ. Видите угрозу?

И существует проблема того, что с традиционным антивирусом в этом случае мы создаем, разворачиваем виртуальную машину, которая тратит свое время на то, чтобы обновить защитный компонент, а в этот момент случаются атаки. Или очень часто мы находим ситуации, в том числе и на российском рынке, когда ранее неизвестное вредоносное программное обеспечение стояло внутри золотого образа, и администратор, копируя этот золотой образ, распространил его по всей сети. В общем, все хорошо, привет, ботнет – сеть, все работает как надо — только не у вас, а у хакера.


Идем далее, теперь немножко про специализированные защиты. Есть два типа защитных решений для виртуальных сред: безагентская и защита легкого агента. Должен отметить, что безагентская защита возможна в настоящее время исключительно на решениях компании «VMware», потому что только «VMware» предоставила свои API для того, чтобы все ИБ компании в мире могли разработать безагентскую защиту.


Принцип действия очень простой. На физическом сервере, где стоят ваши виртуальные машины, разворачивается две дополнительные виртуалки, внутрь каждой виртуальной машины не ставится вообще ничего. В одной из этих виртуальных машин (SVM на слайде) находится антивирусное ядро и все. В сетевой машине защиты network attack blocker, этот компонент отвечает конкретно за проверку коммуникаций между виртуальными машинами и тем, что происходит в экосистеме. Также он еще отвечает за коммуникацию с технологией NSX, но об этом отдельно, может быть, в другой раз или в рамках сессии вопросов и ответов. Как происходит проверка? Вот под этой SVM, это ее юрисдикция, все.

Все, что мигрировало и приехало на этот физический сервер, попадает в зону ответственности данной SVM. Она занимается проверкой и мониторингом ПО. Если надо просканировать виртуальную защиту, это сделает вот эта одна единственная SVM. В случае необходимости, гораздо проще повысить мощность и скорость работы этой виртуальной машины, для неё мы можем легко расширить параметры оперативной памяти, процессорных мощностей и так далее. Сами виртуальные машины мы никак не нагружаем и никак не тормозим задачей безопасности. Антивирусных штормов нет, потому что проверкой всего трафика занимается SVM, она забирает на себя эту задачу, и вредоносное ПО ломится уже не внутрь каждой виртуальной машины.

А теперь интересная технология — пул вердиктов, которые есть внутри каждого центра обработки данных, созданного на этой технологии. Все виртуальные машины защиты имеют общий кэш вердиктов. Если случилось так, что на ваш первый сервер произошла какая-то атака, попало какое-то вредоносное ПО, которое было задетектировано, то запись о том, что вот этот файл злой, будет помещена в пул вердиктов. Следующая виртуальная машина защиты на другом сервере в первую очередь обратится в этот пул вердиктов, она не будет сканировать систему, она не будет потреблять ресурсы, если она просто сравнит файл с вердикт-листом и заблокирует его автоматически в случае, если выяснит, что вердикт — вредоносное ПО… Это сильно ускорило работу всей экосистемы. Это сильно снизило потребление ресурсов, потому что одна SVM отработала, она проверила и задетектировала, остальные виртуальные машины не нагружаются, они просто смотрят общий лист вердиктов.


Идем дальше. Самое интересное и самое вкусное для нас – использование защиты виртуальных сред посредством легкого агента. Принцип работы очень похожий. Есть та же самая SVM, там тот же самый антивирусный движок, точно такой же, как в ваших традиционных антивирусах, но в отличие от предыдущего кейса, где «VMware» ограничивал нашу способность к проверкам, здесь нашему решению предоставлена полная свобода действий.


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

Когда меня спрашивают: «А как мне посчитать, убедить своего директора, что нам действительно это надо?» А все просто.

Допустим, вы пришли к тому, что ваш центр обработки данных или центр обработки данных вашего облачного провайдера столкнулся с тем, что ресурсов вам выделить больше не может, есть там пул в тысячу виртуальных машин, которые вы развернули, для этого пула требуется десять физических серверов. Все. В комнату физически больше десяти серверов не влезает. Если вам говорят, что вам надо будет в два раза срезать эти ресурсы, дать еще в два раза столько же серверов, найти еще одну комнату, добавить еще раз охлаждение, добавить еще раз софт на все эти дополнительные 20 серверов, то давайте это все посчитаем. И вот тогда стоимость лицензий окажется совсем другой при использовании защиты с лёгким агентом, она окажется совсем маленькой, сравнительно выигрышной.

Давайте поговорим сейчас про технологии. Это вопрос актуальный, потому что на примере последней эпидемии Wannacry никто не понял, как так произошло, но все клиенты «Лаборатории Касперского» оказались защищены. Кстати, у меня вопрос в аудиторию, я только прилетел из другой страны, задавал там такой же вопрос. Кто пострадал от Wannacry? Поднимите руки, пожалуйста. Хоть как-то? если не вы сами, то, может, родственник, мама, папа, бабушка, дети? Кого задела эпидемия Wannacry? Нет, никого? Есть? Ряд клиентов, да? Супер. Почему спрашиваю? Не просто из праздного любопытства. А теперь такой вопрос: есть в зале те, кто пострадал и у него при этом было установлено решение «Лаборатории Касперского»? Нет.

Еще ни в одной стране мне не сказали обратного. Ок, но на самом деле статистика мировая, я ее в конце покажу, она действительно очень страшная. Смотрите, я очень быстро пробегусь по самым вкусным технологиям, отвечающим на вопрос, почему так хорошо сработала защита, разработанная специалистами «Лаборатории Касперского». Вопрос актуальный, потому что все кричат сейчас «NextGen антивирус», «NextGen файрвол». Нет понятия NextGen. Это маркетинговый хайп, который все компании подняли, и на котором очень круто, как на серфинге, катятся на волне. Все эти технологии, о которых сейчас буду говорить, они частично есть у наших конкурентов. Самой старой из них лет 12 уже. И вот это все собрано теперь в так называемый NextGen антивирус. Просто потому что решили под другим соусом подать технологию.


Самое вкусное – мониторинг работоспособности системы. Это то, что всем нравится называть самообучающимися сетями. Когда технология запоминает правильную последовательность работы приложений и когда она сталкивается с тем, что последовательность действий приложения внутри виртуальной машины происходит неправильно, она ее блокирует. Именно эта технология, в первую очередь, остановила криптоактивность Wannacry. Она заметила начало подозрительной активности (изменения файлов шифровальщиком), отметила, кто и как вносит эти изменения, своевременно поместила файлы в резервное хранилище (backup) и остановила продолжение этого действия. Однако если администратор по каким-то причинам неправильно настроил или выключил данную технологию защиты, то действия вредоносного ПО, конечно же, распространились дальше.


Автоматическая защита от эксплоитов. Про уязвимость, через которую распространялся Wannacry, компания «Microsoft» знала еще феврале этого года, но патч выпустила только в марте-апреле. В наших решениях есть автоматическая защита от эксплоитов, а именно эксплоитами и пользовался Wannacry. Частично данная технология осуществляется через сетевую машину безопасности, через network attack blocker. В защите с легком агенте через как раз-таки легкий агент. Мы мониторим те уязвимости, которые нам известны, мониторим попытку приложений использовать нестандартные пути распространения. При таких попытках обязательно на консоль администрирования поступят алерты, эти попытки будут остановлены, они будут запрещаться, пока они физически руками администратора или офицера информационной безопасности, не будут разрешены, если это требуется.


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


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


Следующая технология — система предотвращения вторжений. Здесь идет комбинация той сетевой машины защиты (SVM) и того самого обычного файрвола, который есть. Именно вот эта технология остановила распространение Wannacry в виртуальных сетях. Мониторинг систем остановил активность работы шифровальщика, остановил распространение, главный козырь Wannacry.

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


Контроль устройств отвечает за пилитики использования внешних носителейю К каким виртуальным машинам можно получить доступ с помощью usb-девайсов, с какими правами, какие именно девайсы — всё это контролируется с помощью данной технологии.


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


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

Знаете, сколько длится целенаправленная атака в среднем на сегодняшний день? Порядка 300 дней. То есть из этих 300 дней, дней 100 злоумышленники будут собирать информацию на какого-то вашего сотрудника, через которого произойдет заражение. Дней 50, может быть 70, будет происходить очень медленное, очень тихое, очень спокойное (не дай Бог, где-то какая-то из систем даст аллерт) заражение всей экосистемы, без негативной деструктивной деятельности. Злоумышленникам это не надо. Через эти в среднем 200 дней, когда в организации поймут, что все заражено, злоумышленники проникли в компанию, произойдет утечка данных или компрометирующие данные добавятся, или кто-то тихонько-тихонько украдет часть.

У нас был случай, когда мы расследовали инцидент в одном из банков, сотрудники хакерской команды внедрились в процесс микротранзакции. И с каждой транзакции стали забирать один наноцент, потому что он стоял девятым знаком после запятой. Это мизерные деньги, но в системе банковского учета тогда учитывалось только восемь знаков после запятой. И система просто округляла этот девятый знак, и на вот этом округлении за три месяца работы хакеры заработали огромные деньги, они заработали действительно миллиарды. Просто потому что девятый знак после запятой проходил округление, и система его не учитывала. Никакие финансовые аналитические отчеты его даже не увидели. Потом глубоко анализируя код и поймав эту вот хакерскую кампанию, уже смогли разобраться, смогли понять, что дело в девятом знаке. И это была стандартная распространяющаяся атака. В случае с целенаправленными атаками одним из самых сложных и страшных моментов является тот факт, что злоумышленники после своей деструктивной деятельности очень хорошо заметают следы. Прячут двумя способами, они действительно маскируют свою активность полностью, а второе – они часто атакуют те компании, которым очень страшно прийти к кому-то и сказать, что их взломали. Потому что удар по их репутации и финансовый отклик от этого всего будет намного выше, чем просто последствия взлома. Поэтому хакеры очень правильно выбирают жертвы. Они действительно сейчас владеют феноменальной фантазией, феноменальным каким-то подходом и это превращается в искусство.

Я не буду говорить о том, что сейчас хакеры стали профессиональными киллерами, потому что взлом больниц и взлом систем аварийного снабжения больниц, это, по сути, попытка убийства. А хакер это делает вот так. Недавний случай на Украине помните, когда отключили свет во всей области. Хакерская атака целенаправленная. Никто сейчас не защищен по большому счету. Мы все, кто работает на поприще информационной безопасности, выстраиваем несколько слоев защиты. Первое — мы стараемся закрыть те бреши ИБ, которые есть, те уязвимости, которые есть. Второе — мы стараемся сделать так, чтобы для хакеров атака стала дороже, и в денежном выражении и по временным ресурсам.


Теперь о наболевшем, по поводу Wannacry. Вот это то, что видели все. Вот это появлялось на табло многих аэропортов. Я видел это в аэропорту, когда ждал пересадки, и это было невесело, потому что я понимал, что аэропорт взломали, и данные (включая данные регистрации пассажиров) потерли, а вдруг и мой билет туда попал? Это действительность, с которой столкнулся мир. Вот такая прямая и красивая, теперь всему миру известная картиночка. Это первый червь-шифровальщик. Для шифровальщиков не свойственно самораспространение. Шифровальщикам в стандартной среде свойственно то, что пользователь сам инициирует процесс:, открыл непонятное письмо, кликнул по незнакомой ссылке, и дальше запустился процесс шифрования данных.


Это первый червь-шифровальщик, который сам распространялся, сам залезал в систему, сам ее шифровал. Он использовал уязвимости, он работал по определенному порту и он очень быстро распространялся. Чем больше он шифровал, тем больше он распространялся дальше в системы. Это лавинообразная активность. Сколько атак было предотвращено? Могу сказать, на этот раз эпидемию шифровальщиков мы сейчас остановили пока, вот эту конкретно весь мир остановил.


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


Шифровались файлы, среди них можете найти стандартные jpeg, txt-файлы, exel, видео, музыка, все. Шифровалось почти все, что представляет ценность для пользователя. Шифровал и выставлял такой вот тег Wannacry, поэтому и получил свое название.


Теперь по поводу того, как спасаться от этого зловреда. Патчиться, патчиться, патчиться. Это в первую очередь. Знаете, у нас очень интересная тенденция, я вот недавно разбирал мировую аналитику использования VDI-инфраструктур. Как часто на ваших домашних физических компьютерах вы переходите на новую операционную систему? Вот у меня, например, десятка стоит, но она год стоит, ни о какой Redstone я еще пока не думал, у меня все работает. Обычно тенденция 1-4 года, люди понимают, что своя устарела, надо что-нибудь новенькое поставить. Вот в VDI-инфраструктурах, на виртуальных машинах, обновление на новую операционную систему в среднем в мире происходит через две-три недели после выпуска новой операционной системы, часто быстрее, в среднем. Поэтому вот с ними было намного проще, потому что они все были пропатчены. Поэтому VDI в первую очередь именно виртуализации не пострадал. Там очень высокая тенденция обновления операционок, там очень высокая тенденция пробы, потому что когда что-то не работает в операционной системе на нашем компьютере, нам это надо все сносить, ставить заново, искать новые ошибки в системе. Когда мы говорим о виртуальной машине, да пересоздал, удалил, с бэкапа поднял, в общем-то, все быстро, все круто, админы рады, довольны, все хорошо.

Обязательно ставить некоторые критичные обновления безопасности. Опять-таки повторю, атака была направлена конкретно на одну уязвимость, о которой «Microsoft» знал как минимум с февраля, но не закрывал. Не буду спрашивать почему, но не закрывал. Последствия мы видим все. Сейчас быстро выпустили патч, быстро закрыли. Для себя я нашел такой интересный баланс. У меня дома всегда стоит виртуалка, на которую я ставлю новую операционную систему, и там ее использую. Если через пару месяцев я к ней привыкаю, то потом эту операционную систему ставлю к себе, мигрировав изначально все приложения внутри этой виртуалки, и этот образ перекатываю. Здорово работает. Попросите админов ваших сделать так же.

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

Как я уже сказал KSN, это Kaspersky Security Network. Всех людей, которые пользуются продуктами «Лаборатории Касперского», спрашивают, хотят ли они принять участие в программе KSN, Kaspersky Security Network.

Что это такое? Это глобальное мировое сообщество, где регистрируются записи о всех инцидентах, хранятся данные в облачной сети. Сотрудники нашей компании, равно как и наши автоматизированные системы, постоянно анализируют эти данные, ищут всегда что-то новенькое, кладут новые маски. Но по факту это 400 миллионов людей, которые каждую секунду рассказывают всему миру о новых инцидентах, требующих блокировки.

И очень много автоматических систем реагируют на это в нашей компании. Например, наш сотрудник был атакован вирусом Wannacry в Бразилии, вирус был расследован тут же, и Wannacry был остановлен там, на месте. Потому что вирус не прошел system watcher, появилась запись о вирусной активности, не прошел технологию автоматической защиты от эксплойтов, не прошел технологию шифрования, не прошел мониторинг сетевой активности. Все эти ссылки, все эти активности были помечены как опасные. И эти вердикты ушли в KSN. Любой другой сотрудник, который в этот момент сидел в интернете в любом другом уголке мира и был подключен к KSN-сети, автоматом получил информацию о том, что если к нему придет этот файл, то он злой, его надо остановить. Это и остановило всю эпидемию Wannacry.

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

Благодарю вас за внимание.

Ответы на вопросы:

Вы говорили про этот последний вирус, что вы знали об уязвимости в феврале, о возможности, баге «Microsoft» по сути, почему ваш софт не мог заранее дырку закрыть?


Наш софт закрыл. Просто одно дело, когда ты закрываешь ее своими силами, другое дело, когда это закрыто на уровне операционной системы. И наша задача во взаимодействии с компанией «Microsoft», мы, если находим что-то в их коде, мы им об этом сообщаем. Не все же пользуются продуктами «Лаборатории Касперского», их тоже хочется защитить.

Вы находите уязвимость, и она тут же закрывается вашими силами, вашим софтом? На уровне там, где она собственно работает?

Если не быстрее, потому что вот мы находим уязвимость, это значит, что мы ее ручками нашли, а технологии system watcher и automatic exploit prevention они закрывают так называемые 0-day уязвимости, которые еще не выявлены, но потенциал у которых есть и при попытке использования этих уязвимостей, будет остановлен процесс и его вредоносное действие. И вот дальше об этом будет сообщено нашим сотрудникам, они уже дальше начнут предпринимать необходимые действия.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331830/


Метки:  

[Из песочницы] Код Прюфера

Среда, 28 Июня 2017 г. 15:01 + в цитатник

Деревья. Кратко напомним


Дерево – частный случай графа. Деревья широко применяются в программировании. Дерево – это связный граф без циклов. Дерево называется помеченным, если каждой вершине соответствует уникальная метка. Обычно это число.



Определение. Построение кода Прюфера для заданного дерева


Код Прюфера – это способ взаимно однозначного кодирования помеченных деревьев с n вершинами с помощью последовательности n-2 целых чисел в отрезке [1,n]. То есть, можно сказать, что код Прюфера – это биекция между всеми остовными деревьями полного графа и числовыми последовательностями.


Данный способ кодирования деревьев был предложен немецким математиком Хайнцом Прюфером в 1918 году.


Рассмотрим алгоритм построения кода Прюфера для заданного дерева с n вершинами.


На вход подается список ребер. Выбирается лист дерева с наименьшим номером, затем он удаляется из дерева, и к коду Прюфера добавляется номер вершины, которая была связана с этим листом. Эта процедура повторяется n-2 раза. В конце концов, в дереве останется только 2 вершины, и алгоритм на этом завершается. Номера оставшихся двух вершин в код не записываются.


Таким образом, код Прюфера для заданного дерева – это последовательность из n-2 чисел, где каждое число – номер вершины, связанной с наименьшим на тот момент листом – то есть это число в отрезке [1,n].


Пример
image
Исходное дерево
image
Код Прюфера: 1
image
Код Прюфера: 1 5
image
Код Прюфера: 1 5 2
image
Код Прюфера: 1 5 2 6
image
Код Прюфера: 1 5 2 6 6
image
Код Прюфера: 1 5 2 6 6 2
image
Код Прюфера: 1 5 2 6 6 2 1
image
Код Прюфера: 1 5 2 6 6 2 1 3



Восстановление дерева по его коду Прюфера


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


Рассмотрим алгоритм декодирования подробно. Помимо кода нам нужен список всех вершин графа. Мы знаем, что код Прюфера состоит из n-2 вершин, где n – это число вершин в графе. То есть, мы можем по размеру кода определить число вершин в закодированном дереве.


В результате, в начале работы алгоритма мы имеем массив из кода Прюфера размера n-2 и массив всех вершин графа: [1… n]. Далее n-2 раза повторяется такая процедура: берется первый элемент массива, содержащего код Прюфера, и в массиве с вершинами дерева производится поиск наименьшей вершины, не содержащейся в массиве с кодом. Найденная вершина и текущий элемент массива с кодом Прюфера составляют ребро дерева. Данные вершины удаляются из соответствующих массивов, и описанная выше процедура повторяется, пока в массиве с кодом не закончатся элементы. В конце работы алгоритма в массиве с вершинами графа останется две вершины, они составляют последнее ребро дерева. В результате получаем список всех ребер графа, который был закодирован.


Пример
Восстановим дерево по коду Прюфера, который был получен в примере кодирования.


Первый шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 4
Список ребер: 1 4


Второй шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 7
Список ребер: 1 4, 5 7


Третий шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 5
Список ребер: 1 4, 5 7, 2 5


Четвертый шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 56 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 8
Список ребер: 1 4, 5 7, 2 5, 6 8


Пятый шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 56 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 9
Список ребер: 1 4, 5 7, 2 5, 6 8, 6 9


Шестой шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 56 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 6
Список ребер: 1 4, 5 7, 2 5, 6 8, 6 9, 2 6


Седьмой шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 2
Список ребер: 1 4, 5 7, 2 5, 6 8, 6 9, 2 6, 1 2


Восьмой шаг
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 1
Список ребер: 1 4, 5 7, 2 5, 6 8, 6 9, 2 6, 1 2, 3 1


Завершение алгоритма
Код Прюфера: 1 5 2 6 6 2 1 3
Массив вершин дерева: 1 2 3 4 5 6 7 8 9 10
Минимальная вершина, не содержащаяся в коде Прюфера – это 1
Список ребер: 1 4, 5 7, 2 5, 6 8, 6 9, 2 6, 1 2, 3 1, 3 10


Заключение


Код Прюфера был предложен как наглядное и простое доказательство формулы Кэли о числе помеченных деревьев. На практике же его используют чаще для решения комбинаторных задач.


Источники


  1. Уилсон Р. Введение в теорию графов. Перевод с англ. М.: Мир, 1977. -208 с.
  2. Комбинаторика. Булевы функции. Графы: учеб. пособие / А. А. Балагура, О. В. Кузьмин. – Иркутск: Изд-во ИГУ, 2012. – 115 с.
  3. MAXimal [Электронный ресурс] — Режим доступа: ссылка, свободный. (дата обращения: 22.04.2017)
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331836/


Метки:  

Динамическое формирование отдельных символов Escape-последовательности

Среда, 28 Июня 2017 г. 14:32 + в цитатник
При работе с символьными объектами (управляющими последовательностями, &-сущностями, экранирующими последовательностями, мнемониками и т.д.) в моём случае Escape-последовательностями типа "\xnn", возникла необходимость их динамического формирования. Такая задача может возникнуть, например, при разборе вредоносного кода атакованного сайта.

image

Собственно проблема — не работает следующий код:
$inx = '50';
$str = "\x".$inx;
$str .= "\x51";
var_dump($str);
// выведет \x50Q


При разборе выяснил, что такой код работает:
$str = "\x50";
$str .= "\x51";
var_dump($str);
// выведет PQ


И совсем не работает код в одинарных кавычках, т.к. последовательность вообще не интерпретируется:
$str = '\x50';
$str .= ‘\x51’;
var_dump($str);
// выведет \x50\x51


Постановка задачи


Теперь задачу можно сформулировать так: необходима правильная интерпритация строки, содержащей динамически сформированную последовательность типа "\xnn", символы которой составлены из фрагментов.

В данном случае выполняются две операции — конкатенация и интерпритация символьных объектов. И выполняется они в строгой последовательности. Сначала выполняется интерпритация символьных объектов, затем конкатенация, но не наоборот.

Таким образом, в первом примере один из зашифрованных символов последовательности разбивается на фрагменты.
"\x51" преобразуется в символ «Q», а для строки "\х" php ищет последующие 2 символа, не находит их и при совмещении частей выводит в строку 4-мя символами. Такая строка уже не является для php-интерпритатора командой к преобразованию.

Во втором примере php заменяет содержимое двойных кавычек на символы и «склеивает» их в единую строку.

Решение


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

Мои поиски встроенной или готовой функции преобразования последовательности типа "\xnn" в символы к внятному результату не привели. «Говорят, что плохо искал» (В.Цой). В итоге данная задача была решена использованием функция strtr(). Здесь заменяются неинтерпритируемые последовательности '\х50' на преобразуемые"\x50". Разница только в кавычках.

Вот готовая функция для символьных объектов типа "\xnn" и вызов:

function str2escape($string) {
$sym_tbl  = array(
	'\x00'=>"\x00", '\x01'=>"\x01", '\x02'=>"\x02", '\x03'=>"\x03", '\x04'=>"\x04",
	'\x05'=>"\x05", '\x06'=>"\x06", '\x07'=>"\x07", '\x08'=>"\x08", '\x09'=>"\x09", 
	'\x10'=>"\x10", '\x11'=>"\x11", '\x12'=>"\x12", '\x13'=>"\x13", '\x14'=>"\x14",
	'\x15'=>"\x15", '\x16'=>"\x16", '\x17'=>"\x17", '\x18'=>"\x18", '\x19'=>"\x19", 
	'\x20'=>"\x20", '\x21'=>"\x21", '\x22'=>"\x22", '\x23'=>"\x23", '\x24'=>"\x24",
	'\x25'=>"\x25", '\x26'=>"\x26", '\x27'=>"\x27", '\x28'=>"\x28", '\x29'=>"\x29", 
	'\x30'=>"\x30", '\x31'=>"\x31", '\x32'=>"\x32", '\x33'=>"\x33", '\x34'=>"\x34", 
	'\x35'=>"\x35", '\x36'=>"\x36", '\x37'=>"\x37", '\x38'=>"\x38", '\x39'=>"\x39",
	'\x40'=>"\x40", '\x41'=>"\x41", '\x42'=>"\x42", '\x43'=>"\x43", '\x44'=>"\x44",
	'\x45'=>"\x45", '\x46'=>"\x46", '\x47'=>"\x47", '\x48'=>"\x48", '\x49'=>"\x49", 
	'\x50'=>"\x50", '\x51'=>"\x51", '\x52'=>"\x52", '\x53'=>"\x53", '\x54'=>"\x54",
	'\x55'=>"\x55", '\x56'=>"\x56", '\x57'=>"\x57", '\x58'=>"\x58", '\x59'=>"\x59", 
	'\x60'=>"\x60", '\x61'=>"\x61", '\x62'=>"\x62", '\x63'=>"\x63", '\x64'=>"\x64",
	'\x65'=>"\x65", '\x66'=>"\x66", '\x67'=>"\x67", '\x68'=>"\x68", '\x69'=>"\x69", 
	'\x70'=>"\x70", '\x71'=>"\x71", '\x72'=>"\x72", '\x73'=>"\x73", '\x74'=>"\x74",
	'\x75'=>"\x75", '\x76'=>"\x76", '\x77'=>"\x77", '\x78'=>"\x78", '\x79'=>"\x79", 
	'\x80'=>"\x80", '\x81'=>"\x81", '\x82'=>"\x82", '\x83'=>"\x83", '\x84'=>"\x84",
	'\x85'=>"\x85", '\x86'=>"\x86", '\x87'=>"\x87", '\x88'=>"\x88", '\x89'=>"\x89", 
	'\x90'=>"\x90", '\x91'=>"\x91", '\x92'=>"\x92", '\x93'=>"\x93", '\x94'=>"\x94",
	'\x95'=>"\x95", '\x96'=>"\x96", '\x97'=>"\x97", '\x98'=>"\x98", '\x99'=>"\x99", 
	);
return strtr($string, $sym_tbl);
}
// вызов:
$str = str2escape($str);


Теперь всё хорошо:

$inx = '50';
$str = "\x".$inx;
$str .= "\x51";
var_dump(str2escape($str));
// выведет PQ


Поиск причины и решения заняло некоторое количество времени, думаю пройденный мной путь поможет быстрее разобраться всем, кто столкнётся с подобной задачей в дальнейшем.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331832/


Метки:  

Как платить налоги и взносы ИП или зачем мы сделали бота-бухгалтера в Telegram

Среда, 28 Июня 2017 г. 14:22 + в цитатник


Это статья для фрилансеров, которые работают как ИП или только планируют стать предпринимателями. Мы расскажем, как сэкономить максимум на налоге по УСН и как в этом поможет наш бот-бухгалтер в Telegram (и почему обычные онлайн-бухгалтерии для этого не подходят).


Но прежде, чем мы начнём, давайте разберёмся, сколько платят предприниматели на УСН.


Страховые взносы ИП


Все предприниматели ежегодно платят за себя обязательные страховые взносы в ПФР и ФФОМС. Причем независимо от того, есть ли у них доходы и на какой системе налогообложения они находятся.


Взносы рассчитываются исходя из МРОТ, который время от времени повышается (например, сейчас МРОТ составляет 7500 руб., а с 1 июля он увеличится до 7800 руб.). Поэтому если в этом году предприниматель должен заплатить минимум 27 990 руб., то в следующем — 29 109,60 руб.


Если доходы ИП за год превысят 300 тыс. руб., то в ПФР нужно дополнительно заплатить 1 % от суммы превышения. Если ИП зарегистрирован меньше года, то сумма взносов уменьшается пропорционально с даты регистрации ИП до конца года. (Точную сумму взносов можно рассчитать с помощью калькулятора страховых взносов на нашем сайте.)


Взносы в ПФР, включая фиксированную часть и дополнительный 1 %, не могут превышать суммы, рассчитанной исходя из 8-кратного МРОТ. Поэтому максимальный размер взносов в ПФР и ФФОМС в 2017 году составляет 191 790 руб.


Фиксированную часть взносов необходимо заплатить до 31 декабря, дополнительный 1 % в ПФР — до 1 апреля следующего года. Но страховые взносы лучше платить частями в течение года, мы расскажем об этом ниже.


Авансовые платежи и налог по УСН


УСН бывает двух видов: доходы 6 % или доходы минус расходы 15 % (ставки в разных регионах могут отличаться). Для IT-фрилансеров больше подходит УСН доходы 6 %. Поэтому в этой статье мы будем говорить о расчёте налога для ИП на УСН доходы без наёмных работников.


После того, как у предпринимателя появятся доходы, ему нужно платить авансовые платежи и налог по УСН. Авансовые платежи уплачиваются в течение года за каждый квартал (до 25 апреля, 25 июля, 25 октября). Налог уплачивается по итогам налогового периода — до 30 апреля следующего года.


Рассчитываются авансовые платежи и налог по УСН одинаково — это 6 % от полученных доходов. Эту сумму можно уменьшить на страховые взносы, уплаченные в этом же периоде, а также предыдущие авансовые платежи.


Уменьшение налога по УСН


Итак, есть несколько способов снизить налог по УСН. Первый — это оплачивать страховые взносы в течение года (а не единой суммой в конце). Второй — вовремя оплачивать авансовые платежи. Если вместо авансовых платежей заплатить всю сумму налога в конце года, то после подачи декларации налоговая может начислить вам пени за их просрочку. Если вам вообще не нужно платить налог (например, в декабре вы заплатили страховые взносы и полностью уменьшили на них налог по УСН), то налоговая всё равно может выставить вам требование об оплате авансовых платежей, а потом списать их со счёта. Как избежать этой ситуации, мы напишем далее.


Чтобы понять, как уменьшается налог по УСН, рассмотрим его формулу.
Н = Д x 6 % - В - С, где
Н — это авансовый платёж (за 1 квартал, полугодие, 9 месяцев) или налог по УСН за год,
Д — это сумма доходов за период (нарастающим итогом с начала года),
В — это страховые взносы, уплаченные в этом же периоде,
С — это сумма авансовых платежей за предыдущие отчётные периоды.


Например, если предприниматель за 1 квартал заработал 250 тыс. руб., то авансовый платёж по УСН составит 15 тыс. руб.:


250 000 x 6 % = 15 000


Если за 2 квартал он заработает ещё 250 тыс. руб. и заплатит страховые взносы 10 тыс. руб., то авансовый платёж за полугодие составит 5 тыс. руб.:


500 000 x 6 % - 10 000 - 15 000 = 5000


Для того, чтобы уменьшить налог по УСН на страховые взносы, важно, чтобы они были уплачены до конца квартала. Например, авансовый платёж за 1 квартал можно уменьшить на страховые взносы, уплаченные с 1 января по 31 марта, авансовый платёж за полугодие — на взносы, уплаченные с 1 января по 30 июня и т. д. Это может быть и фиксированная часть взносов, и дополнительный 1 % в ПФР. Вот почему важно, если у вас есть доходы, оплачивать взносы в течение года, несмотря на то, что срок их оплаты ещё не наступил.


Если вы оплатили долг по страховым взносам за предыдущий год, вы также можете уменьшить на эту сумму налог по УСН.


Последствия неуплаты налога и взносов


За неуплату страховых взносов и авансовых платежей (налога) по УСН могут быть начислены пени в размере 1/300 ставки рефинансирования ЦБ РФ за каждый день просрочки (примерно 12 % годовых).


За неуплату налога по УСН также может быть наложен штраф в размере от 20 до 40 % от неуплаченной суммы.


Что делать, если вы не платили авансовые платежи в течение года?


Как мы уже писали, это может обернуться тем, что после подачи декларации налоговая спишет сумму задолженности с расчётного счёта несмотря на то, что долга по налогу у вас нет. Например, если вы заплатили страховые взносы в декабре и полностью уменьшили на них налог по УСН.


Дело в том, что уменьшение налога в программе ФНС произойдёт только после окончания срока подачи декларации (для ИП — 30 апреля). До этого времени за вами будет числиться задолженность по авансовым платежам, и налоговая может выставить вам требование, а в случае его неисполнения — списать эту сумму с расчётного счёта. Чтобы этого избежать, рекомендуем подать декларацию ближе к концу срока.


Онлайн-бухгалтерии


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


Вводные данные: за 1 и 2 квартал 2017 года ИП заработал по 250 тыс. руб. Страховые взносы и авансовые платежи ещё не платил.


Всего доход составляет 500 тыс. руб. Налог по УСН — 30 000 руб.


Сумма начисленных страховых взносов:


  • фиксированная часть в ПФР — 23 400 руб.,
  • фиксированная часть в ФФОМС — 4590 руб.,
  • дополнительный 1 % в ПФР — 2000 руб.

Моё дело


Моё дело предлагает оплачивать фиксированную часть страховых взносов равными частями в течение года (1/4 в квартал), а дополнительный 1 % — только в следующем году. Например, для нашего ИП за 2 квартал сервис рассчитал в ПФР — 11 700 руб., в ФФОМС — 2295 руб.



Таким образом, авансовый платеж по УСН за 2 квартал предприниматель сможет уменьшить только на 13 995 руб. и ему придётся заплатить ещё 16 005 руб.:


500 000 x 6 % - 13 995 = 16 005


Предположим, доходов у ИП больше не будет. До конца года ему останется заплатить в ПФР — 11 700 руб., в ФФОМС — 2295 руб. То есть всего за год с Моим делом он заплатит 43 995 руб.:


  • в ПФР — 23 400 руб.,
  • в ФФОМС — 4590 руб.,
  • налог по УСН — 16 005 руб.

По налогу УСН у него возникнет переплата 13 995 руб., так как он заплатил и страховые взносы, и налог по УСН. Переплату можно вернуть или зачесть в счёт предстоящих платежей. Но для этого необходимо обратиться в налоговую.


Эльба


Эльба также предлагает оплачивать фиксированную часть страховых взносов равными частями в течение года (1/4 в квартал) + дополнительный 1 % в ПФР. Для нашего ИП сервис рассчитал в ПФР — 11 700 руб., в ФФОМС — 2295 руб., в ПФР 1 % — 2000 руб., всего 15 995 руб.



Авансовый платеж по УСН за 2 квартал составит 14 005 руб.:


500 000 x 6 % - 15 995 = 14 005


Если доходов у ИП больше не будет, то до конца года ему также останется заплатить в ПФР — 11 700 руб. и в ФФОМС — 2295 руб. Всего за год с Эльбой он заплатит 43 995 руб., при этом по налогу УСН будет переплата 13 995 руб.:


  • в ПФР — 23 400 руб.,
  • в ФФОМС — 4590 руб.,
  • в ПФР 1 % — 2000 руб.,
  • налог по УСН — 14 005 руб.


1С считает страховые взносы так же, как Эльба. То есть предпринимателю придётся заплатить за год 43 995 руб. с переплатой по УСН 13 995 руб.



Вывод


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


Именно поэтому мы сделали бесплатного бота-бухгалтера в Telegram.


Бот-бухгалтер


Бот-бухгалтер рассчитает страховые взносы так, чтобы максимально уменьшить на них налог по УСН и не переплачивать. Если у вас есть доходы, то в конце квартала бот предложит вам заплатить страховые взносы в размере налога по УСН и автоматически разобьёт эту сумму по каждому фонду.


Например, нашему предпринимателю до 30 июня нужно заплатить в ПФР — 23 400 руб., в ФФОМС — 4590 руб., в ПФР 1 % — 2000 руб., всего 29 990 руб.



Тогда до 25 июля ему останется заплатить авансовый платёж по УСН — 10 руб.



При отсутствии доходов до конца года больше ничего платить не нужно. Всего за год с ботом-бухгалтером предприниматель заплатит 30 000 руб.:


  • в ПФР — 23 400 руб.,
  • в ФФОМС — 4590 руб.,
  • в ПФР 1 % — 2000 руб.,
  • налог по УСН — 10 руб.

При этом никаких переплат, которые потом нужно возвращать из налоговой, у него не будет.


Что ещё умеет бот-бухгалтер


Бот рассчитает страховые взносы ИП, поможет уменьшить на них налог по УСН, напомнит о предстоящих платежах и сдаче отчётности. Такж он подскажет КБК для каждого платежа и актуальные реквизиты вашей налоговой инспекции.



Мы надеемся, что бот будет полезен и поможет вам сэкономить на налогах. До конца года мы планируем добавить импорт банковской выписки и экспорт платёжных поручений для оплаты налога и взносов, а также подготовку декларации по УСН.


Если у вас есть любые вопросы, пишите в комментариях.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331828/


Метки:  

Как работает HFT: 3 простых объяснения

Среда, 28 Июня 2017 г. 13:57 + в цитатник


На высокочастотную торговлю (high frequency trading, HFT) уже давно приходится более 80% всего объёма сделок на мировых биржах. Однако разобраться с тем, как устроена такая торговля, непосвященному человеку довольно трудно.

Пользователи ресурса вопросов и ответов Quora решили разобраться с этим вопросом и попробовали сформулировать простое описание — использовав в качестве примера продажу и покупку бананов. Мы выбрали лучшие ответы, прозвучавшие в ходе дискуссии.

Вопрос: Вот, например, я увидел банан, который стоит один доллар. Я уже готов его купить, но тут кто-то подбегает к кассе и делает покупку раньше меня. Затем этот кто-то поворачивается ко мне и говорит, что продаст мне злосчастный банан за доллар и пять центов. Это и есть высокочастотная торговля?

HFT-трейдеры — это посредники


По словам Джозефа Ванга, бывшего вице-президента гонконгской инвесткомпании, в контексте биржи лучше думать о принципе продажи на eBay, а не о кассах гипермаркета Walmart. То есть, розничная торговля и высокочастотная – совсем не одно и то же.

Объясняю: ты хочешь купить банан за один доллар. Но, к сожалению, силой мысли купить его невозможно – нужен продавец-посредник (трейдер). Посредник сначала найдет того, кто продаст ему бананы за 99 центов, а затем продаст их тебе за один доллар. Казалось бы, ты и сам мог бы проделать эту операцию, однако у тебя есть дела поважнее, чем поиск человека, готового продать тебе фрукт дешевле. Да и настоящая выгода от такой сделки будет только в том случае, если ты решишься купить 10 000 бананов (как это сделает реальный трейдер), что маловероятно для обывателя.

Высокочастотный трейдинг основан на предположениях


Пользователь под ником Алан Чан пишет о том, что высокочастотный трейдинг – это больше история сложного механизма, а не единичной стратегии.

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

Сколько же будет стоить банан при подобных условиях в нашем выдуманном мире? Давайте представим, что, покупая банан за 10 долларов, вы можете тут же продать его за 9 долларов. В ином случае вы можете поискать бананы подешевле и, тем самым, увеличить выгоду от продажи одного банана.

И вот, например, вы и ваша жена/муж хотели бы устроить ужин, на котором вы будете принимать гостей с бананами, как это заведено. Вы приходите на первый рынок и скупаете все имеющиеся бананы по цене в 10 долларов за штуку. Трейдер в этот момент бежит на другой рынок, покупает там 15 бананов за ту же цену, чтобы покрыть уже проданным вам бананы, и берет еще последние 5 с мыслью о том, что вы обязательно купите их за любую цену. Так и происходит – вы покупаете у него их за $10,50.

Таким образом, исходя из выше написанного: можно сделать следующие выводы:

  1. Продавец никогда не знает, купит ли покупатель вы последние 5 бананов, он просто подумал, что вы похожи на человека, помешавшегося на бананах, и рискнул;
  2. У вас есть свобода выбора: вы могли отказаться платить за банан $10,50, продемонстрировав продавцу, что для сбыта цену нужно снизить;
  3. Рыночные цены на бананы полностью отображают ваши действия по их покупке. И если в прошлом цены не менялись, это не значит, что они будут оставаться неподвижными всегда.

Высокочастотные трейдеры обеспечивают ликвидность


Джон Филеас рассматривает рынок высокочастотной торговли с двух точек зрения. С точки зрения отдельного человека, трейдер находит бананы за $0,99, а продает их своему покупателю за один доллар. Он предлагает наилучшую цену: она будет либо соответствовать ценам других трейдеров на рынке, либо будет более выгодной. С общественной же точки зрения, существуют некое третье лицо – посредник, который мог бы тоже продавать бананы за ту же цену. Но из-за того, что его опередили, он потерял этот самый цент заработка с каждого проданного банана.

С точки зрения рынка, вы и некое третье лицо – это один и тот же человек. Как только вы начинаете покупать, то сразу вовлекаетесь в продажу. Каждый раз, покупая акции, вы потом вынуждены продавать их. То есть, если трейдеры не повышают цену, за которую вы покупаете акцию, то они лишают вас (и любого другого человека в вашей ситуации) возможности получить от её продажи изначальную сумму.

Еще одно важное замечание касается того, что трейдеры обеспечивают ликвидность и вам не приходится ждать новых сделок. Однако сейчас рынок стал достаточно быстрым и без их помощи, особенно в сфере мелких продаж. И всё же, увеличение скорости до микросекунд не имеет такого значения для мелких инвесторов, как для крупных. Крупные инвесторы в свою очередь стремятся избегать высокочастотных продавцов, считая, что они по факту не предоставляют им никаких полезных услуг.

И наконец, ликвидность высокочастотных продаж – это ликвидность “в хорошую погоду”. Когда погода на улице благоприятная, они (продажи) немного улучшат вашу ликвидность. Но если наступили темные времена, то вам попытаются продать зонт в солнечный день или и вовсе пропадут. Или попытаются продать вам банан за один доллар, когда вы совсем не голодны.

Другие материалы по теме финансов и фондового рынка от ITinvest:


Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331826/


Метки:  

[Из песочницы] Легкий тест производительности облачных платформ AWS, Google Cloud и Microsoft Azure

Среда, 28 Июня 2017 г. 13:37 + в цитатник
Когда говорят «облачная виртуальная машина», как правило, имеют в виду AWS. И когда все эти вопросы стали для меня актуальными, из любопытства решил провести небольшой эксперимент по оценке цены/скорости систем других крупных облачных конкурентов.



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

Признаюсь, что богатого реального опыта работы с AWS, Azure и Google Cloud у меня до сего момента не было, потому я начал с простого гугления, т.к. «лобовое» сравнение характеристик не дало должного понимания картины. К примеру, при выборе многоядерных систем тот же Гугл оперирует значениями неких виртуальных ЦП, нигде не поясняя, что это значит. В результате не совсем понятно, какова именно будет производительность запущенной системы.



В итоге я принял решение поставить простой эксперимент: запустить ряд несложных тестов производительности на инсталляциях трех топовых провайдеров облачных сервисов (ими стали AWS, Google Cloud и Microsoft Azure).

Во всех трех случаях были заведены новые аккаунты и подняты Windows Server 2016 на 4-х ядерных инстансах универсального назначения. Для AWS это EC2 m4.xlarge; для Google — n1-standard-4; для Azure — DS3_v2 Standard. Память выровнена во всех трех примерах до уровня Azure.



Тут, кстати, крылась первая «засада». Нормально зарегистрироваться с первого раза получилось только с Azure. Google по каким-то причинам отказался принимать банковскую карту, заявив о «недопустимом способе оплаты» — хотя и Amazon и Azure восприняли карту нормально. У AWS глюкнула форма регистрации — да так, что пришлось обращаться в поддержку и ждать ответа. Техподдержка у них активная. Это плюс. Дважды перезванивали, дважды писали, но вопрос в итоге «висел» более недели.  

Но это мелочи, поэтому вернемся к тестам. Виртуальные машины подняты, что называется, «как есть», без какой-либо дополнительной доработки. Для проверки производительности во всех случаях запускался одинаковый набор тестов:

  • GeekBench 4 (на мой взгляд, самый показательный);
  • 7zip (как «контрольный выстрел»);
  • CristalDiskMark.

Результаты GeekBench 4



Amazon EC2 m4.xlarge в дата-центре во Франкфурте









Google Cloud (дата-центр us-central 1-c)










Microsoft Azure










Результат, если честно, немного удивил. Т.е. мы видим весьма заметное преимущество облака от Microsoft. И причина проста — Azure предоставляет полноценные четыре вычислительных ядра с высокой тактовой частотой, тогда как и Google и Amazon дают двухядерники, а цифра «четыре» получается за счет гипертрейдинга!

С Google, кстати, есть еще одна «засада». Уже после тестов, разбирая скриншоты, стало ясно, что инстансы от Azure и AWS у меня были расположены в Европе, а Google — в Штатах. Т.е. при поднятии сервера я не обратил внимание на регион. А тонкость тут в том, что изменить местоположение дата-центра при поднятии сервера нельзя. Делается это в общих настройках консоли всех виртуальных машин, что не совсем очевидно.

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

Результаты 7Zip


Результаты работы встроенного теста архиватора — исключительно для проверки GeekBench. И тут мы видим аналогичную картину, хотя с чуть меньшим расхождением. На диаграмму вынесен общий вычислительный балл Total Rating в MIPS.



Теперь давайте посмотрим на скорость дисковой подсистемы.

Результаты CrystalDiskMark


Чтобы проверить работу дисковой подсистемы, я взял CrystalDiskMark и старенький Anvil’s Storage Utilities. Первый отработал на ура, и вот его результаты:



Azure и Amazon в целом работают достаточно шустро, а вот Google, по всей видимости, жестко ограничен рамками в 25 МБ/с. Попытка перепроверки данных в Anvil’s была успешной лишь отчасти. На сервере Amazon он показал результаты, аналогичные Crystal, а вот в «облаках» Azure и Google тестовые результаты вызвали огромное количество вопросов. Например в Google скорость линейной записи зафиксировалась на отметке в 240 МБ/с, в то время как внешний мониторинг дисковых операций на консоли управления не показывал трафика выше 20 МБ/с. А это даже ниже, чем зарегистрированные значения при запуске Crystal (два горба справа на скриншоте — работа дисковых тестов).



Ценник


Цена на Google Cloud самая низкая. Особенно с учетом 30% скидки, получаемой, если виртуалка работает большую часть месяца.  



Второй по цене выходит AWS. C учетом отдельной платы за хранилище в нашем случае мы получаем ~$346, что отображено на шапке соответствующей вкладки.



Ну а цена на Azure формально самая высокая (~$356). Однако она не сильно отличается от AWS. А если учесть, что при регистрации в Azure мы получаем бонусные $200, так и вовсе становится средней.



Выводы


Главный вывод — на Azure мы получили полноценные четыре вычислительных ядра процессора Xeon E5-2673. За счет этого мы имеем чуть ли не 50% превосходство в скорости выполнения многопоточных задач над AWS. Да, это стоит чуть дороже. Однако стартовые $200 и, будем честны, совсем не 50%-е превышение цены, говорят сами за себя.

Дисковая подсистема тоже не одинакова. И если хранилища Azure и AWS «шевелятся» достаточно шустро, то у Google выставлен очень жесткий и низкий барьер на дисковые операции. И если это кому-то критично, то имейте в виду. С другой стороны, у Гугла тестировался американский дата-центр. Возможно, что если бы я взял европейский, картина могла быть другой. Но сейчас пока нет времени это проверить.

P.S.: Уже после заливки материала на Хабр увидел вот эту статью. Ну, значит, все действительно так и есть.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331822/


Метки:  

Миллион WebSocket и Go

Среда, 28 Июня 2017 г. 13:03 + в цитатник

Метки:  

И ещё примерно 3,3 тыс новых способов читать «Хабрахабр» и «Гиктаймс»

Среда, 28 Июня 2017 г. 12:38 + в цитатник
Многие заметили, что на главной странице, в хабах и потоках пропал раздел «Интересное», куда попадали все публикации с рейтингом +5 и выше. Ранее этот раздел был нужен для того, чтобы не тратить время на чтение всего потока публикаций и видеть только то, что прошло «первичную фильтрацию» теми, кто читает сайт через вкладку «Все подряд». Со временем необходимость во вкладке «Интересные» отпала. Дело в том, что сейчас почти все публикации набирают положительный рейтинг, в то время как заминусованных публикаций ничтожно мало. Поэтому вкладку «Интересное» мы решили спрятать внутри вкладки «Все подряд», но не просто спрятать, а разбить на несколько дополнительных выборок:

— без порога (все публикации, в том числе заминусованные)
— с рейтингом +10 и больше
— с рейтингом +25 и больше
— с рейтингом +50 и больше
— с рейтингом +100 и больше


Таким образом, теперь можно выбрать нужный порог рейтинга и читать публикации в хронологическом порядке: либо вообще все подряд, либо с хорошим рейтингом, либо самую-самую «мякотку». Вот, например, все публикации «Хабра» с рейтингом +100.

О, в потоках и хабах тоже сделали?


Да, аналогичную сортировку публикаций мы сделали в потоках и хабах. Теперь там тоже можно формировать удобные выборки и не тратить время на поиск наиболее интересных публикаций. Например, вы решили изучить Javascript, а в хабе этого языка более 4 тысяч публикаций. Не читать же их все подряд? Выбираем сортировку «+100» и, вуаля — перед вами всего 14 страниц самого отборного. Не просто вырезка, а прямо-таки филе-миньон. Мало? Нажмите «+50» — и перед вами уже 57 страниц публикаций, которые были также высоко оценены аудиторией.

Дальше — больше. Теперь в хабах, потоках и блогах компаний также доступна вкладка «Лучшие», в которой публикации идут в порядке убывания рейтинга. Во вкладке доступны три сортировки: за неделю, за месяц и за всё время. Этой вкладкой удобно пользоваться, когда хочется увидеть самое интересное за определённый промежуток времени. Например, лучшие за всё время публикации в хабе «Алгоритмы», или, например, в блоге «Яндекса».

Перед выгрузкой на сайт мы тестировали фильтрацию публикаций и пришли к выводу, что каждый раз её настраивать не очень удобно. Поэтому для удобства сделали так, что выбранный где-либо порог рейтинга сохраняется для разных мест. То есть, если вы выбрали в ленте порог +25, то такой же порог будет выбран при переходе в хаб или поток.
 

RSS


Конечно же, у каждой новой сортировки появились отдельные RSS-фиды. Добавляйте в свои ридеры нужные фильтры для любого из хабов, потоков или главной страницы и читайте только то, что вам хотелось бы. Теперь у нас есть более 3,3 тысяч новых способов читать «Хабр» и «Гиктаймс»!

Прочие изменения


— «Избранное» теперь называется «Закладки»;
 
— Добавили две методички: как работать с блогом компании и как оформить публикацию;

— Перелопатили бэкенд Habrastorage и добавили markdown-код для загружаемых картинок:



— Рейтинг публикации теперь виден всем — больше не нужно тратить голос на «узнать рейтинг»;

— Исключили из рейтинга пользователей аккаунты компаний (ведь это рейтинг пользователей, а не компаний);

— В профилях компаний появился раздел с сотрудниками компании;
 
— Новый виджет «Инвестиции» в блогах компаний;

— Исправили баги в markdown-режиме создания публикации (спойлеры, упоминание пользователей);

— Наладили доставку писем с наших сервисов (раньше многие из них попадали в спам, сейчас не должны);
 
— Перевели все социальные сети Хабра и Geektimes на автоматический постинг, подписывайтесь:

    Habrahabr: ВКонтактеFacebookTwitterTelegram
    Geektimes: ВКонтактеFacebookTwitterTelegram

— Создали несколько новых хабов и объединили парочку старых, обновите настройки ленты;

— Исправлены различные мелкие баги на самом сайте, в документации, в письмах и на Habrastorage.

Завершение редизайна «Хабрахабра» и «Гиктаймс»


В ближайшее время мы планируем завершить редизайн «Хабрахабра» и «Гиктаймс». Сейчас мы активно тестируем новую типографику публикации, стиль комментариев и готовимся к выгрузке.

Также на правах хакатона мы обновили tmfeed.ru — теперь он построен на основе элементов TM UI Kit, которые мы будем использовать на всех наших проектах.
 
Следите за обновлениями!
Нравится ли вам новые способы читать «Хабрахабр» и «Гиктаймс»?

Проголосовало 8 человек. Воздержалось 2 человека.

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

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331818/


Метки:  

nstd — C++ библиотека — «джентельменский набор» полезных классов

Среда, 28 Июня 2017 г. 11:59 + в цитатник


Всегда хотел иметь под рукой определённый «джентельменский набор» библиотечных классов, с малой зависимостью, которые можно легко совмещать с другими библиотеками и фреймворками и легко переносить в другие проекты. Как говориться — включил и забыл. И самое главное — «не плати за то, что не используешь» (С) С++




nstd::


Мне нравятся библиотеки состоящие только из заголовочных файлов. Тем более, что грядут модули в C++! :) Сразу оговорюсь, библиотека nstd ни в коем случае не претендует на место великих и могучих библиотек и фреймворков типа boost, Qt, POCO и т.д. и т.п. Скорее, она является дополнением к ним.

Моя библиотека использует возможности C++17 и состоит из нескольких слабо-зависимых друг от друга функциональных классов. Сразу предупрежу, что библиотека активно дополняется и меняется, и, возможно, на момент чтения вами этой статьи она уже изменилась настолько, что за актуальной информацией лучше обратиться к исходным кодам здесь.

Библиотека содержит несколько примеров по использованию классов. Для них, я включил проекты CodeBlocks (для Windows). Однако, примеры также содержат конфигурационный файл GENie для генерации других типов проектов. Например, можно легко сгенерировать Makefile для этих целей. C++17 поддерживается GCC 7.1 и последними версиями Clang. К сожалению, Visual Studio 2017 пока поддерживает не все возможности нового стандарта, в частности не поддерживается inline для data members и упрощённый способ объявления nested namespaces. Поэтому, в принципе, вы можете сгенерировать проект для VS 2017 через GENie, но он пока не скомпилируется. Хотя, если очень нужно, то можете сами подправить исходники для компиляции в VS 2017, там не сложно.

Если у вас нет CodeBlocks или Вы не хотите его устанавливать, тогда, на примере MinGW-w64 GCC 7.1 для Windows, я опишу как быстро сгенерировать и скомпилировать примеры при помощи GENie и Makefile-ов.

  1. Качаем MinGW-w64 с GCC 7.1, например отсюда. Распаковываем в удобную для вас папку и прописываем в переменную PATH путь к папке MinGW/bin.
  2. Качаем исполняемый файл GENie для Windows (там же есть и для других ОС) отсюда.
  3. Копируем genie.exe в папку с примерами, туда, где лежит файл genie.lua.
  4. Для генерации Makefile-ов, запускаем из папки примеров команду: «genie.exe gmake»
  5. В папке с примерами появятся главный Makefile и sub-мейкфайлы для каждого проекта.
  6. Например, чтобы собрать все примеры в Release конфигурации, запускаем там-же: «mingw32-make.exe config=release». Если хотите собрать только один из примеров, тогда просто нужно добавить имя примера, например: «mingw32-make.exe config=release relinx_example».


Библиотека nstd распространяется под лицензией MIT и содержит не только классы моей разработки, но и сторонние наработки. В описании проекта на Github я указываю, какие именно сторонние классы я включил в проект. В репозитории они лежат в отдельной папке external.

Коротко о текущем содержании nstd:

Класс Relinx я уже представлял на Хабрахабре здесь. Попросту говоря, это LINQ для C++. Поддерживаются «ленивые» вычисления и реализованы почти все методы .NET LINQ. Я решил включить Relinx в nstd. Не пропадать же добру :).

signal_slot классы удобны в том плане, что позволяют сигналам и слотам автоматически отключаться друг от друга при разрушении соединения между ними. Каждая связь слота с сигналом любого типа представлена классом connection, при разрушении которого происходит разрыв связки signal-slot. Важно то, что connection, в отличии от сигналов и слотов, не является template-ом, что позволяет сохранять его в любой контейнер, независимо от типов сигнала и слота. Соответственно, при разрушении этого контейнера, все связи с сигналами будут разорваны. Это удобно, когда объект, содержащий данный контейнер, разрушается, при этом не нужно специально отсоединяться от сигналов — это произойдёт автоматически.

live_property построен на базе signal_slot классов. Это обвязка над типами, которая позволяет отслеживать изменения над ними и, при желании, можно управлять поведением: изменять значение или нет.

expiry_cache это template контейнер, который хранит данные только определённое время и оповещает сигналом об истечении срока годности данных. Работает в двух режимах: продлевает жизнь данным, если к ним было обращение в течении времени хранения, и режим без продления жизни данных. Также, есть режим автоматической очистки в фоновом режиме через отдельный поток (auto vacuum).

json — сторонняя библиотека работы с форматом данных JSON.

asio — сторонняя библиотека работы с сетевыми подключениями. Возможно, скоро войдёт в стандарт C++.

urdl — сторонняя библиотека от автора asio, но форкнутая и развиваемая другими разработчиками. Она позволяет удобно загружать данные из сети.

sqlite — это сторонняя обёртка над sqlite3. Очень интересная реализация.

quantum random number provider — это класс-генератор случайных чисел с использованием бесплатного сервиса QRNG (http://qrng.anu.edu.au), который возвращает случайные числа, сгенерированные на квантовом оборудовании.

За примерами использования этих классов (и некоторых других, которые я здесь не упомянул), обращайтесь к репозиторию на Github здесь. Если останутся вопросы или возникнут хорошие предложения — обращайтесь!

Я активно пытаюсь дополнять библиотеку nstd полезными классами. Предлагаю всем желающим принять участие в развитии nstd библиотеки. Если есть хорошие и полезные классы, то присылайте мне. Постараюсь адаптировать и включить в библиотеку.

///TODO:

В ближайших планах хочу реализовать remote signals, работающие через TCP или UDP соединение. Эти сигналы хочу использовать для связи между процессами и связи по сети.
Есть ещё задумка реализовать GUI классы на основе Blend2D или AGG и с использованием своей реализации signals slots. Пока не определился, какую из графических библиотек взять за основу. Буду рад выслушать ваше мнение по этому вопросу.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331564/


Метки:  

Итоги конкурса Stepik Contest и новые адаптивные онлайн-курсы

Среда, 28 Июня 2017 г. 11:48 + в цитатник
С ноября по май на платформе Stepik проводился конкурс Stepik Contest, участники которого создавали уроки для адаптивной системы обучения, разработкой и активным внедрением которой сейчас занимается команда Stepik. О ходе конкурса мы писали ранее, а в этой статье хотим поделиться результатами (новыми бесплатными курсами!) и рассказать о победителях.



Для участия в конкурсе нужно было выбрать себе тему в рамках одной из номинаций (Applied Computer Science, Theoretical Computer Science, Data Science, Python, Java и JavaScript) и создать по ней 20+ задач и несколько теоретических уроков на английском языке. Мы планировали использовать созданные материалы в адаптивном обучении, где образовательный контент и задания подбираются индивидуально каждому учащемуся, основываясь на его уровне знаний и подготовке, поэтому к создаваемым урокам были особые требования:

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

Изначально мы хотели завершить конкурс 11 февраля 2017 года, однако не учли, что период праздников, а затем и студенческой сессии сильно ограничит время потенциальных участников, поэтому продлили дедлайн до 31 марта и не прогадали: большинство уроков было создано именно в последний месяц.

Созданные уроки и курсы. Процесс отбора.


За время проведения конкурса участники создали на платформе 61 курс, самыми популярными оказались темы Applied Computer Science (16 курсов), Python и Java (по 11 курсов), но однако до этапа регистрации добрался уже 41 курс, а соответствовали требованиям 29 из них. Конкурс проводился на английском языке, география участников оказалось довольно разнообразной — Россия, Украина, Великобритания, Бангладеш, Египет, Канада, Польша.

31 марта мы закрыли регистрацию и через 10 дней предъявили курсы для проведения голосования среди учащихся платформы. Это было сделано для того, чтобы достичь сразу двух целей: честного голосования и проверки, подходят ли созданные уроки для адаптивного обучения. Мы соединили все уроки в большие адаптивные курсы, и их получилось 4:

  1. Computer Science (решили объединить две номинации);
  2. Java, а теперь это Adaptive Java с ещё большим числом задач;
  3. JavaScript;
  4. Data Science.

Курс по Python не стали создавать, так как в итоге всем критериям соответствовали только уроки студента матмеха СПбГУ Виталия Полшкова.

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

1 место: Артём Бурылов (Россия, Пермь), Functional Programming in Java
2 место: Андрей Кочкин (Россия, Москва), Cryptography
3 место: Марк Заславский и его команда (Россия, Санкт-Петербург), Git
3 место: Дмитрий Леванов (Россия, Киров), Collections Framework
3 место: Дмитрий Князев (Россия, Москва), Collections in Java

Затем курсы оценивали привлечённые эксперты, и стало понятно, насколько хорошо сделанные уроки вписываются в предлагаемый адаптивный режим.
По итогам в дополнительные номинации вошли следующие авторы:

Python: Виталий Полшков (Россия, Санкт-Петербург), Functional Programming in Python
Computer Science: Дмитрий Митин (Украина, Киев), Scala
Computer Science: Антон Брагин (Россия, Санкт-Петербург), Docker
Data Science Guilia Toti (Великобритания, Лондон), Logistic Regression
Data Science Евгения Воронцова (Россия, Владивосток), Introduction to Julia

Все результаты также опубликованы на adaptive.stepik.org/results, победители награждены призами (или в процессе их получения) и фирменными сертификатами Stepik.



Конкурс Stepik Contest не только принёс большое количество высококачественных курсов, которые можно проходить в адаптивном режиме, но и привлёк замечательных IT-профессионалов в ряды преподавателей Stepik. Некоторые из них уже готовят новые курсы, а кто-то даже перечисляет часть приза на благотворительность!

Отзывы участников конкурса:


Желание попробовать создать свой курс у меня всегда было, не хватало как раз такого толчка, как конкурс. Дополнительным вызовом стала необходимость подготовить курс на английском языке. В целом, это был очень ценный опыт — при создании материалов курса нужно многое изучить по теме курса, а комментарии часто помогают взглянуть на задания с другой, иногда неожиданной стороны. И очень приятно, когда мой курс оказывается полезным для других людей. Евгения Воронцова, к.ф.-м.н., Дальневосточный федеральный университет, автор курса по программированию на языке Julia.

What a wonderful opportunity you gave me to teach and most importantly to consolidate my knowledge. Just awesome. Mainul Islam, Бангладеш, автор курсов по Data Science и JavaScript.

Это был интереснейший опыт да и идея с адаптивными курсами кажется очень перспективной, особенно в сравнении с другими MOOC платформами :) Артем Бурылов, Java backend developer в области разработки и защиты платежных систем, победитель конкурса.

Although I did spend a lot of efforts and time for preparation of this course and although I did not win, I think it was a wonderful experience and I am really honored to get to know you. My primary goal was to educate others and I will continue to do so. Mohamed Kamal, клинический фармацевт, Египет, автор курса по программированию на R.

Было интересно попробовать себя не только в роли активного пользователя платформы, но и в роли автора самостоятельного курса. Виталий Полшков, студент 1 курса матмеха СПбГУ, автор курса по функциональному программированию на Python.

Узнав о конкурсе на платформе Stepik, решил что это — хорошая возможность систематизировать и структурировать знания, сделать некоторый вклад в образовательный open source. Спасибо большое Stepik'у за активный позитивный фидбэк во время проведения конкурса. Roman Malizderskyi, инженер-гидротехник Киев, Украина, автор курса по JavaScript.

I really liked participating in the Stepik Contest. I thought it was well structured. I know that when I start teaching I will need to use an educational platforms. And I thought it was a good opportunity to try an educational platform and participate in the contest at the same time. Giulia Toti, постдокторат Королевского колледжа в Лондоне, автор курса про логистической регрессии в Data Science.

Для нашей команды конкурс стал возможностью сделать сразу несколько вещей, которые мы давно хотели, но времени не хватало — глубоко разобраться со StepikAPI и создать курс по Git, отвечающий нашим запросам. В результате нам удалось не только сделать сам курс, но и получилось сделать прототип загрузчика курсов на Stepik, который позволяет вести весь процесс в командной строке и при этом хранить весь курс в системе контроля версий. Преподаватели ЛЭТИ, авторы курса по Git, 3-е место.


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

PS: Самые внимательные читатели подсчитали количество ссылок на новые курсы и уроки в этой статье. Их 16 :)
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331708/



Поиск сообщений в rss_rss_hh_new
Страницы: 1437 ... 1027 1026 [1025] 1024 1023 ..
.. 1 Календарь