Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

WS, но лучше

Время на прочтение4 мин
Количество просмотров12K

Привет, Хабр! В этой статье я хотел бы рассказать о методе работы с WebSocket, который я часто применяю в своих разработках. Если кратко, WebSocket — это, пожалуй, самое частое, что я использую в своих проектах. Мне очень важно, чтобы сервер мог общаться с клиентом в двустороннем режиме, но использование обычного WebSocket не всегда комфортно. Для решения этой задачи я часто пишу какой-либо обработчик, и, суммируя суть того, что именно делает этот обработчик, я решил написать небольшую и очень простую библиотеку.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом

Время на прочтение14 мин
Количество просмотров8.7K

polkit – это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав a GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Раскрытие уязвимости было скоординировано с командой по поддержке polkit, а также с командой по обеспечению безопасности в компании Red Hat. О раскрытии этой уязвимости было объявлено публично, патч для нее был выпущен 3 июня 2021 года, и ей был присвоен код CVE-2021-3560.

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

История уязвимости CVE-2021-3560 и какие дистрибутивы она затронула

Рассматриваемый баг достаточно старый. Он вкрался в код более восьми лет назад в коммите bfa5036 и впервые мог использоваться в версии 0.113 программы polkit. Однако, во многих популярных дистрибутивах Linux эта уязвимая версия не использовалась до относительно недавнего времени.

Немного специфической историей этот баг обладает в Debian и его производных (например, в Ubuntu), так как Debian использует форк polkit, в котором есть своя особенная схема нумерации версий. В форке Debian этот баг появился в коммите f81d021 и впервые попал в дистрибутив в версии 0.105-26. В стабильном релизе Debian 10 (“buster”) используется версия 0.105-25, таким образом, уязвимости в нем нет. Но некоторые производные Debian, в том числе, Ubuntu, основаны на нестабильной версии Debian, а она уязвима.

Читать далее
Всего голосов 24: ↑22 и ↓2+20
Комментарии3

Unity: Небольшой скрипт = все ориентации экрана

Время на прочтение6 мин
Количество просмотров4.8K

Хватит блокировать вертикальную или горизонтальную ориентацию экрана в своих проектах на Unity! В этой статье мы рассмотрим небольшой скрипт, который я использовал в своем проекте.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

Как пройти собеседование в немецкой компании

Время на прочтение4 мин
Количество просмотров10K

Германия находится в самом центре Европы, и поэтому на эту страну оказывает очень сильное влияние других европейских культур, а также стран-партнеров. Самое большое влияние имеют Англия и США, поэтому во многом культурные особенности и правила этикета в бизнес сфере будут схожи. Ниже мы расскажем, какие нюансы нужно учитывать при прохождении интервью в немецкой компании🇩🇪⬇

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

📌Если вам не удалось вовремя попасть на интервью, имейте ввиду - следующую встречу вам могут назначить только через 3-4 месяца. В немецких компаниях у HR-менеджеров очень высокая нагрузка и план встреч у них расписан на несколько месяцев назад. Приходите вовремя и будьте пунктуальны, тогда у вас будет шанс на трудоустройство.

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

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

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

Читать далее
Всего голосов 41: ↑3 и ↓38-35
Комментарии27

Незаменимые бывают

Время на прочтение2 мин
Количество просмотров8K

— «Исправьте сей мир и живопись последует за вами», - так ответил Микеланджело на решение папы Павла IV внести изменения в изображение страшного суда, которое украшает альков Сикстинской капеллы.

Читать далее
Всего голосов 37: ↑23 и ↓14+9
Комментарии49

Проверяем защищённость приложения на Go: с чего начать

Время на прочтение5 мин
Количество просмотров12K

Привет! Меня зовут Александра, я инженер по информационной безопасности в Delivery Club. Мы используем Go в качестве основного языка для разработки Web-API и представляем вашему вниманию краткое руководство по быстрой проверке сервиса на соответствие базовым требованиям безопасности. Представленную ниже информацию можно адаптировать под проекты, написанные и на других языках.

Читать далее
Всего голосов 26: ↑20 и ↓6+14
Комментарии7

«Чтобы сразу как надо, не переделывая». Зачем мы учили дизайнеров проводить исследования, и к чему это привело

Время на прочтение11 мин
Количество просмотров5.6K
В некоторых компаниях исследовательская лаборатория — это примерно как исследовательское агентство, только расположенное не снаружи, а внутри. В других компаниях исследователи связаны с проектными командами больше, чем с коллегами-ресерчерами. А у кого-то вообще нет формально выделенных исследователей, эту функцию может брать на себя UX-дизайнер, когда возникает такая необходимость. Мы в «Лаборатории Касперского» — я, UX Research Group Manager Лена Королева, и мой соавтор Senior Usability Researcher Даша Романова — попробовали жить в разных конфигурациях и можем рассказать:
  • в чем состоят плюсы и минусы каждого варианта;
  • какие подводные камни ждут вас при смене модели;
  • что делать, чтобы с минимальными потерями вырулить к новой «точке стабильности».

image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Российский космос в новых международных условиях

Время на прочтение8 мин
Количество просмотров24K
Думаю, уже пришло время для освещения санкций в отношении космонавтики России. И вообще, что её ждёт в связи с последними внешнеполитическими событиями и решениями.

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


Читать дальше →
Всего голосов 88: ↑86 и ↓2+84
Комментарии68

Пять книг, которые изменили мою карьеру программиста

Время на прочтение4 мин
Количество просмотров84K

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

- Джордж Р.Р. Мартин.

Читать далее
Всего голосов 41: ↑37 и ↓4+33
Комментарии30

Методы организации DI и жизненного цикла приложения в GO

Время на прочтение20 мин
Количество просмотров15K

Есть несколько вещей, которыми можно заниматься вечно: смотреть на огонь, фиксить баги в легаси-коде и, конечно, говорить о DI — и всё равно нет-нет, да и будешь сталкиваться со странными зависимостями в очередном приложении.
В контексте языка GO, впрочем, ситуация чуть сложнее, поскольку явно выраженного и всеми поддерживаемого стандарта работы с зависимостями нет и каждый крутит педали своего собственного маленького самоката — а, значит, есть что обсудить и сравнить.


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

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии5

Эти странные, тревожные фото говорят о том, что ИИ умнеет

Время на прочтение4 мин
Количество просмотров85K


ИИ учится генерировать изображения из подписей и начинает лучше понимать наш мир


Из всех моделей искусственного интеллекта именно GPT-3 разработки OpenAI сильнее всего поразила воображение публики. Она без особых подсказок может извергать стихотворения, короткие рассказы и песни, заставляя думать, что это работы человека. Но красноречие — всего лишь уловка, которую не стоит путать с реальным интеллектом.
Разве может робот создать шедевр?
Всего голосов 51: ↑48 и ↓3+45
Комментарии145

Глубокое погружение в Linux namespaces, часть 2

Время на прочтение9 мин
Количество просмотров27K

Часть 1
Часть 2
Часть 3
Часть 4


В предыдущей части мы только окунули пальцы ног в воды namespace и при этом увидели, как это было просто — запустить процесс в изолированном UTS namespace. В этом посте мы осветим User namespace.


Среди прочих ресурсов, связанных с безопасностью, User namespaces изолирует идентификаторы пользователей и групп в системе. В этом посте мы сосредоточимся исключительно на ресурсах user и group ID (UID и GID соответственно), поскольку они играют фундаментальную роль в проведении проверок разрешений и других действий во всей системе, связанных с безопасностью.


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

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Век живи — век учись. Часть 3. Дополнительное образование или век вечного студента

Время на прочтение11 мин
Количество просмотров44K
Итак, вы окончили вуз. Вчера или 15 лет назад — не имеет значения. Можно выдыхать, работать, не спать на парах, отлынивать от решения конкретных задач и максимально сузить свою специализацию, чтобы стать дорогим профессионалом. Ну или наоборот — выбирать, что нравится, вникать в различные сферы и технологии, искать себя в профессии. С учёбой покончено, окончательно и бесповоротно. Или нет? Или хочется (очень надо) защитить диссертацию, пойти поучиться в удовольствие, освоить новую специальность, получить корочки для прагматичных карьерных целей? А может, однажды утром вы встанете и ощутите неведомую тягу к ручке и тетради, к потреблению новой информации в приятной компании взрослых студентов? Ну и самое тяжелое — а вдруг вы вечный студент?! 

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


Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии18

Три жизни в ИТ и не только

Время на прочтение6 мин
Количество просмотров11K


Директор Академических программ Parallels Антон Дяйкин поделился мнением о том, как связано повышение пенсионного возраста с дополнительным образованием и чему точно стоит научиться в ближайшие несколько лет. Далее рассказ от первого лица.
Всего голосов 24: ↑17 и ↓7+10
Комментарии13

Разбираемся с интерфейсами в Go

Время на прочтение10 мин
Количество просмотров109K

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

  1. Человеческим языком объяснить, что такое интерфейсы.
  2. Объяснить, чем они полезны и как вы можете использовать их в своём коде.
  3. Поговорить о том, что такое interface{} (пустой интерфейс).
  4. И пройтись по нескольким полезным типам интерфейсов, которые вы можете найти в стандартной библиотеке.
Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии18

Математическая модель игры Доббль

Время на прочтение12 мин
Количество просмотров52K

Уровни сложности чтения


  • Я слишком молод, чтобы думать


    • Введение и правила игры
    • Как они это делают?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Сделай мне умно


    • Введение и правила игры
    • Как они это делают?
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Кошмар


    • Введение и правила игры
    • Как они это делают?
    • Конечная геометрия для грудничков
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Как построить проективную плоскость?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности


Введение и правила игры


Несколько лет назад я купил игру Доббль (Dobble, оригинальное название “Spot It!”). Это очень простая, быстрая и весёлая игра, которую я считаю одной из лучших настольных игр вообще.

Читать дальше →
Всего голосов 110: ↑110 и ↓0+110
Комментарии23

Возможно ли загрузить непроходимый уровень в Super Mario Maker?

Время на прочтение8 мин
Количество просмотров21K
Данная запись — вольный пересказ видео Is it Possible to Upload an Impossible Level in Super Mario Maker?. В ролике есть отсылка на видео The Impossible Level, поэтому перескажу и его. Мой пересказ не претендует на точность, я просто хочу поделиться интересным материалом.

О чём пойдёт речь


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

Люди тратят уйму времени, чтобы найти ошибки в играх. Это могут быть логические, математические и даже программистские ошибки. Кто-то делает это, чтобы посмотреть на игру под новым углом, а кто-то пытается пройти игру хоть на несколько секунд быстрее, чем любой другой игрок. Мне кажется именно сообщество спидранеров (людей, проходящих игры на скорость) внесло огромный вклад в дело поиска игровых глюков и ошибок. Но экономить время при прохождении мы будем в другой раз, сегодня просто рассказ о поиске ошибки в игровой логике.

В сентябре 2015 года компания Нинтендо выпустила Super Mario Maker — платформер про известного сантехника Марио. Одной из ключевых особенностей игры стала возможность пользователям самостоятельно создавать уровни (здесь они называются курсы) и делиться ими с другими игроками. Кто-то уровни создаёт, отслеживает процент успешных прохождений, а кто-то, собственно, проходит эти уровни. Именно в этот момент у игроков-исследователей зачесались руки — а можно ли опубликовать непроходимый уровень?


Рисовать что-то такое нет смысла, уровень хоть и действительно непроходимый, но и опубликовать мы его не сможем.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии7

Как ты реализуешь аутентификацию, приятель?

Время на прочтение10 мин
Количество просмотров117K


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


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


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

Читать дальше →
Всего голосов 89: ↑82 и ↓7+75
Комментарии94

Что почитать в выходные: 5 книг по практической информационной безопасности

Время на прочтение2 мин
Количество просмотров26K


Нас часто спрашивают, какие книги стоит почитать тем, кто делает первые шаги в сфере информационной безопасности? Наша команда экспертов по тестированию на проникновение составила подборку книг, которые помогут освоить практические вопросы ИБ.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

Что почитать на новогодних праздниках

Время на прочтение4 мин
Количество просмотров34K
Составили для вас подборку книг, которые помогут прокачать полезные для работы скиллы и узнать что-то новое, не делая над собой титанических усилий.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии15
1

Информация

В рейтинге
4 308-й
Зарегистрирован
Активность