Pull to refresh
1
0.1
Send message

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Level of difficultyMedium
Reading time28 min
Views210K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через web.archive.org

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее

Элегантная математика фильтров Блума

Level of difficultyMedium
Reading time7 min
Views13K

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

В этой статье речь пойдёт об изяществе математики, лежащей в основе фильтров Блума. Мы разберём аспекты точности работы и компромиссов при конфигурировании этих фильтров, а также узнаем, почему в некоторых случаях они могут стать отличным выбором, особенно в сфере больших данных и системах OLAP, когда подразумевается обработка огромных и статичных датасетов.
Читать дальше →

Скрыть нельзя найти: как прятали информацию на ПК в 2000-х

Reading time6 min
Views22K

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

Читать далее

OAuth 2.0, OpenID Connect и SSO для самых маленьких

Level of difficultyMedium
Reading time17 min
Views7.8K

Всем привет! Меня зовут Павел, я Head of Development в Банки.ру. Сегодня хочу погрузиться с вами в, кажется, уже давно заезженные темы: Single sign-on, OAuth, OpenID и нюансы их реализации. 

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

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

– основные Flow OAuth 2.0 и отдельно Authorization Code Flow with Proof Key for Code Exchange;
– OpenID Connect (OIDC);
– Single Sign-On или SSO: схему реализации и применение SSO в мобильных и веб-приложениях.

Читать далее

Кормление диких птиц — больше хаоса и не будет вреда

Level of difficultyEasy
Reading time3 min
Views14K

В Прибалтике провели объёмное исследование - как влияет кормёжка птиц на их выживаемость? Оказалось всё просто, страшно и логично. Короче - кормить надо с разрывами по времени, дням и количеству корма. Если не хотите угробить побольше синиц и прочих, не насыпайте корм каждый день, в одном количестве и в одно время. Насыпайте скажем 100 граммов семечек, по темноте в воскресенье, что бы в понедельник с утра поели. А во вторник так же оставьте 50 граммов, в среду ничего не насыпайте, в четверг по возможности насыпьте после обеда и так далее. Короче хаос, хаос и ещё раз хаос. И обязательно в неделю пару-тройку дней ничего не сыпьте или сыпьте 10 - 20 граммов, не более.

Читать далее

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

Reading time9 min
Views16K

От переводчика: Эта статья, написанная в 2021 году, хоть и фокусируется на Европе, а конкретно на Нидерландах, на самом деле очень актуальна и по сей день и для других стран, в том числе и для России (за некоторыми исключениями). Она очень хорошо, например, отвечает на классические вопросы к статьям со статистикой зарплат вида "Где вы такие зарплаты находите, никто из моих знакомых столько не получает!" и вполне объясняет, почему большинство работников мало заметили уход международных компаний с российского рынка.

Я работаю нанимающим менеджером в Uber, в Амстердаме, уже более 4 лет. За это время рынок - и зарплаты - для программистов двигались вверх невероятными темпами.

Но интересно, что многие не заметили значимых изменений в зарплате за эти годы. В опросе разработчиков Honeypot Amsterdam за 2019 год говорится, что «самые опытные разработчики зарабатывают в среднем 55 000 евро и более 70 000 евро». В отчете о зарплатах Talent.io за 2021 год зарплата самых опытных разработчиков программного обеспечения в Амстердаме составляет 60 000 евро в год.

Между тем, по моим наблюдениям, средняя общая сумма вознаграждения старших сотрудников Uber почти удвоилась со 110 000 евро в 2015 году до 170 000-230 000 евро в год к 2020 году. И это не только в Uber: в Booking.com общая сумма вознаграждения старших сотрудников выросла на 50% - с €100 000 в 2016 году до €150 000+ в рамках проводимого мной исследования зарплат в ЕС.

Откуда же берется такое несоответствие в наблюдениях?

Читать далее

Как я работала в стартапе и обучила 60 человек английскому языку

Level of difficultyEasy
Reading time8 min
Views5.9K

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

В 2023 году ребята из американского стартапа Flowhealth позвали меня на работу корпоративным учителем английского. Возникла такая потребность у американского стартапа, потому что они наняли большую команду IT из СНГ (конечно чтобы ФОТ был поменьше). С хардами у ребят проблем никаких, а вот с английским не так хорошо. И вот что я сделала:

Читать далее

Обзор способов защиты контейнеров Docker: от простого к сложному

Level of difficultyMedium
Reading time11 min
Views11K

Безопасность Docker — один из главных вопросов, занимающих умы DevOps‑инженеров и аналитиков безопасности. Согласно последним отчетам Snyk и Red Hat более 44% всех контейнеров, которые находятся в коммерческой эксплуатации, содержат уязвимости, даже несмотря на доступность обновления базовых образов. Угроза не ограничивается выявленными недостатками — хакеры беспрерывно ищут новые векторы атак на системы, построенные с использованием Docker и Kubernetes.
Читать дальше →

Анализ задачи с собеседования в Google: конь и телефонные кнопки

Level of difficultyMedium
Reading time13 min
Views24K

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

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

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

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

Международные стандарты безопасной разработки: ликбез

Level of difficultyEasy
Reading time11 min
Views3.4K

DevSecOps — это не просто модное словечко, а целая философия, объединяющая разработку, безопасность и операции. Но как применить эту философию на практике? Здесь на помощь приходят международные стандарты.

В этой статье мы рассмотрим пять основных международных DevSecOps-стандартов: DSOMM, BSIMM, OWASP SAMM, Microsoft SDL и NIST SP 800-64. Мы разберем их особенности, сильные и слабые стороны, а также поговорим о том, как адаптировать эти стандарты к российским реалиям.

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

Читать далее

Keycloak. Мапинг учеток через mTLS c двойной проверкой сертификатов в kubernetes

Level of difficultyHard
Reading time10 min
Views3.5K
Продолжаем с делиться экспертизой отдела Security services infrastructure (департамент Security Services компании «Лаборатории Касперского»). В данном посте мы разберем, как легко настроить mTLS, обращаясь к ресурсам в k8s через ingress-контроллер, и подсоединить это все к keycloak. Пост будет полезен тем, кто в своей инфраструктуре использует PKI и, в частности, клиентские сертификаты.



Ни для кого не секрет, что для улучшения защиты доступа к веб-ресурсам многие компании используют или начинают использовать mTLS — когда помимо проверки серверного сертификата проверяется сертификат пользователя. В данной статье мы расскажем:
  1. Как настроить проверку клиентских сертификатов в k8s на ingress-контроллере.
  2. Как передать клиентский сертификат с ingress-контроллера в keycloak с мапингом сертификата к учетной записи Keycloak-a.
  3. Как и зачем настраивать перепроверку клиентского сертификата в keycloak.
  4. Как проверить отозванные клиентские сертификаты с помощью keycloak и CRL/OCSP.

Статья рассчитана на людей, которые ранее были знакомы с IAM и, в частности, с keycloak-ом. Поэтому в этой части не будет «базы» по SAML2, OAuth2/OIDC и в целом по IAM (на Хабре есть хорошие статьи на эту тему). Также для понимания данной статьи необходимы знания базовых абстракций kubernetes и умение читать его манифесты.

В ресерче материалов для данного поста и реализации данной технологии на проде принимали участие еще несколько человек. Указать их соавторами на Хабре нет возможности, поэтому озвучу их тут: Ян Краснов, Иван Николаев, Максим Сушков, Иван Кодянов.
Читать дальше →

Опыт внедрения практик AppSec/DevSecOps

Level of difficultyMedium
Reading time8 min
Views2.5K

Процессы разработки должны быть построены так, чтобы гарантировать предсказуемый уровень безопасности продукта на выходе. Именно с такой идеей мы приступали к модернизации наших внутренних процессов в «ЛАНИТ ― Би Пи Эм».

Мы провели исследование мировых практик обеспечения безопасности, которые часто объединяют терминами AppSec (application security) и DevSecOps (development, security, and operations). Для нас было важно, что безопасность требуется не только при написании серверного кода. Фронт, инфраструктура, процессы сборки и развертывания также могут быть уязвимы. Поэтому мы обращали внимания на все эти аспекты. В этой и последующих статьях речь пойдет о наиболее интересных наших находках.

Читать далее

DuckDB: сказ о том, как утёнок приютился в Persistent Volume

Level of difficultyEasy
Reading time7 min
Views4.2K

Привет, дорогой друг. Меня зовут Максим и я data-инженер в одной из прекрасных команд AI area компании Домклик. Правильно перевозить байтики с места на место нам помогает огромный зоопарк инструментов. И, кажется, мы приручили ещё одного питомца.

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

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

Читать далее

Когда обманули во всем: изучаем фейковый планшет, которым забиты маркетплейсы

Reading time10 min
Views207K

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

Детали под катом.

Читать далее

Secure by Design: с чего начинается безопасность продукта

Level of difficultyHard
Reading time9 min
Views5.2K

Можно ли при идеальном коде и защищённой инфраструктуре иметь серьёзные проблемы в безопасности продукта? Защитят ли нас полностью современные средства инфраструктурной защиты, анализа кода? А что, если нет? Давайте подумаем об этом на отвлечённых примерах из практики.

Привет, Хабр! Меня зовут Игорь Игнатьев, я директор департамента защиты приложений в VK. Сегодня расскажу о подходе к построению безопасных продуктов, и это будет моя первая статья из цикла про принципы Secure by Design.

Читать далее

Через тернии к звёздам: строим SSDLC на OpenSource-компонентах

Reading time14 min
Views4.1K

Привет! Меня зовут Максим Коровенков, я DevSecOps Lead в СберМаркете. 

Хочу рассказать о том, как мы строим developer-центричный DevSecOps. Мы набили по ходу этого «строительства» уже достаточное количество шишек, поэтому, дабы поберечь вас, делюсь обретенным опытом.

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

Читать далее

Типы проб в Kubernetes: проверяем работоспособность систем

Reading time6 min
Views3.5K
В Kubernetes существует три типа проб, предназначенных для проверки работоспособности подов. В этой статье рассказано, как использовать эти пробы, а также объяснены отличия между ними.

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

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Level of difficultyMedium
Reading time16 min
Views41K

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

В этой лекции мы узнаем, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. Разберем, что такое Seq Scan, Bitmap Heap Scan, Index Scan и почему Index Only Scan бывает нехорош, чем отличается Materialize от Memoize, а Gather Merge от "просто" Gather.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1, часть 2) и слайды.

Читать далее

Подробно про JWT

Level of difficultyMedium
Reading time6 min
Views22K

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

Читать далее

Обзор криминалистических артефактов Windows

Level of difficultyMedium
Reading time12 min
Views14K

При расследовании инцидентов информационной безопасности на хостах под управлением Windows, специалистам приходится искать свидетельства и доказательства вредоносной активности. В типичной ситуации аналитик сталкивается с физическим диском или его образом, содержащим множество артефактов операционной системы, которые не всегда легко интерпретировать. Иногда стандартный набор артефактов может не обеспечить полный ответ на вопрос: «Что произошло в системе?». Например, если настройки аудита неправильно настроены, то необходимые события в журналах безопасности могут не записаться, или злоумышленник может успеть очистить наиболее популярные артефакты, или данные в процессе сбора или передачи могут повредиться.

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

Подробнее
1
23 ...

Information

Rating
3,252-nd
Registered
Activity