Раскладываем по полочкам процесс освоения Computer Science. Книги, лекции зарубежных вузов и ресурсы для практики, которые помогут новичку последовательно разобраться в основных дисциплинах компьютерных наук.
Для большинства программистов Computer Science — факультет в зарубежных вузах, целиком и полностью посвящённый программированию, математике и всему, что связано с разработкой программного обеспечения. К счастью, в современном мире необязательно инвестировать тысячи долларов и 4 года своей жизни в образование, ведь существует бесчисленное множество онлайн-курсов, книг и других ресурсов для изучения компьютерных наук.
Приводить сотни всевозможных материалов для программистов-самоучек мы не будем, а лишь попытаемся ответить на два главных вопроса:
В качестве ответа приведём список материалов, опубликованный Озаном Онай (Ozan Onay) и Майлзом Бёрном (Myles Byrne) — инструкторами в школе компьютерных наук Брэдфилда в Сан-Франциско.
Данная подборка литературы и курсов основана на личном опыте обучения сотен программистов-самоучек.
#ComputerScience |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🖕1
Что такое SSL-сертификат, как его сгенерировать и использовать для локальной разработки и для тестирования на мобильных устройствах.
SSL-сертификат — это цифровой сертификат, позволяющий убедиться в том, что сервер, передавший данные клиенту, не подменен и данные передал именно он.
Сертификат состоит из закрытого ключа, который держится в секрете и с помощью которого данные шифруются сервером, и самого сертификата с открытым ключом, с помощью которого данные расшифровываются клиентом. Не имея закрытого ключа, невозможно зашифровать данные таким образом, чтобы клиент расшифровал их тем же открытым ключом. Главная информация в сертификате — это то, кому он выдан, то есть доменное имя.
Приложения, требующие наличие валидного сертификата при локальной разработке:
Есть два способа выполнить эту задачу:
#SSL |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Ethernet frame - является блоком данных протокола канального уровня и использует базовые транспортные механизмы физического уровня Ethernet. Другими словами, блок данных по каналу Ethernet транспортирует фрейм Ethernet в качестве своей полезной нагрузки.
Preamble – последовательность бит, по сути, не являющаяся частью ETH заголовка определяющая начало Ethernet фрейма.
DA (Destination Address) – MAC адрес назначения, может быть юникастом, мультикастом, бродкастом.
SA (Source Address) – MAC адрес отправителя. Всегда юникаст.
E-TYPE (EtherType) – Идентифицирует L3 протокол (к примеру 0x0800 – Ipv4, 0x86DD – IPv6, 0x8100- указывает что фрейм тегирован заголовком 802.1q, и т.д. Список всех EtherType — тут
Payload – L3 пакет размером от 46 до 1500 байт
FCS (Frame Check Sequences) – 4 байтное значение CRC используемое для выявления ошибок передачи. Вычисляется отправляющей стороной, и помещается в поле FCS. Принимающая сторона вычисляет данное значение самостоятельно и сравнивает с полученным.
Данный формат был создан в сотрудничестве 3-х компаний – DEC, Intel и Xerox. В связи с этим, стандарт также носит название DIX Ethernet standard. Данная версия стандарта была опубликована в 1982г (первая версия, Ehernet I – в 1980г. Различия в версиях небольшие, формат в целом остался неизменным). В 1997г. году данный стандарт был добавлен IEEE к стандарту 802.3, и на данный момент, подавляющее большинство пакетов в Ethernet сетях инкапсулированы согласно этого стандарта.
#Frame |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
FAQ по Shadowsocks/XRay/XTLS/Reality/Nekobox/etc. для обхода блокировок
Классических способов выявить прокси/VPN не так много, самые известные:
▫️ разница между часовыми поясами у клиента в браузере и в локации IP-адреса с которого он подключается (например, в браузере московский часовой пояс, а сервер в Лондоне и там пояс другой) - обойти элементарно;
▫️ выявление по MTU - ненадежно, актуально для OpenVPN/L2TP/Wireguard/SSTP, для XRay и подобных прокси не актуально, т.к. они работают на другом уровне;
▫️ сканирование IP клиента на предмет открытых стандартных портов (например, 443) - можно обойти цепочкой из двух серверов с туннелем между ними;
Два важных отличия от других технологий:
▫️ в отличие от VPN, где подключение к VPN-серверу устанавливается один раз и все, в случае с прокси, на каждое исходящее подключение из клиентского софта устанавливается новое подключение к прокси-серверу (если только не используется мультиплексирование)
▫️ поскольку через прокси невозможно послать ICMP-пинг, большинство клиентов меряют задержку не пингом, а выполнением HTTP-запроса.
Вот и считайте: когда вы запускаете тест, сначала устанавливается TCP-соединение с прокси-сервером (уже как минимум один, а то и два round-trip). Потом поверх него происходит TLS-хендшейк (ещё один round-trip), и в процессе него прокси-сервер ещё устанавливает TCP-соединение с reality-dest сервером и запрашивает у него сертификат. Потом прокси посылает запрос на установление TCP-соединения с тем сервером, который используется для теста. Потом, если URL указан как HTTPS, происходит ещё TLS-хендшейк с ним. Потом клиент делает HTTP-запрос и ждёт получения ответа. И только после ответа вы видите результат теста, и "задержка" - это суммарное время всего вышеописанного процесса.
💬 Подробнее тут
#FAQ |🌐 Сетевик Джонни
Классических способов выявить прокси/VPN не так много, самые известные:
Два важных отличия от других технологий:
Вот и считайте: когда вы запускаете тест, сначала устанавливается TCP-соединение с прокси-сервером (уже как минимум один, а то и два round-trip). Потом поверх него происходит TLS-хендшейк (ещё один round-trip), и в процессе него прокси-сервер ещё устанавливает TCP-соединение с reality-dest сервером и запрашивает у него сертификат. Потом прокси посылает запрос на установление TCP-соединения с тем сервером, который используется для теста. Потом, если URL указан как HTTPS, происходит ещё TLS-хендшейк с ним. Потом клиент делает HTTP-запрос и ждёт получения ответа. И только после ответа вы видите результат теста, и "задержка" - это суммарное время всего вышеописанного процесса.
#FAQ |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Сокеты являются основным механизмом для работы с сетевыми протоколами в Python. Библиотека socket позволяет создавать и управлять сокетами, а также отправлять и получать данные через сеть.
Для создания сокета в Python используется функция socket.socket(). В качестве аргументов вы можете указать тип сокета и используемый протокол. Например, для создания сокета с использованием протокола TCP/IP:
Для установки соединения с сервером используйте метод connect() сокета. В качестве аргумента передайте кортеж, содержащий адрес сервера и номер порта:
Для отправки данных на сервер используйте метод send() сокета, а для получения данных — метод recv():
После завершения работы с сокетом обязательно закройте его с помощью метода close():
Python предоставляет библиотеки для работы с высокоуровневыми протоколами, такими как HTTP, FTP и SMTP. Например, для отправки HTTP-запроса вы можете использовать библиотеку requests:
print(response.text)
#Python |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Протокол управления передачей (англ. TCP - Transmission Control Protocol) обеспечивает надежную доставку данных. Сервис TCP так и называется: reliable byte stream (надежная передача потока байт). Этот протокол отвечает за доставку данных и сохранение порядка передаваемых сообщений.
Поток может быть большим. Как же в этом случае работает протокол? Допустим, вы скачиваете файл, который весит несколько Гб. В протоколе поток будет разбиваться на сегменты, и каждый из этих сегментов - отправляться получателю. На стороне получателя все части снова собираются.
Чтобы обеспечить гарантию доставки данных, TCP использует подтверждение получения сообщений. Как это работает?
Вот только в протоколе TCP подтверждаются сразу несколько сегментов, которые отправляются друг за другом (механизм скользящего окна). В противном случае скорость обмена данными была бы ужасающе медленной.
В протоколе TCP также предусмотрена защита от дублирования и нарушения порядка сообщений (сообщения нумеруются).
#TCP |
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
В данной статье рассмотрим установку и настройку (
Marzban (Персидское слово "Пограничник" - произносится /mærz'ban/) — это инструмент управления прокси-серверами, который предоставляет простой и удобный пользовательский интерфейс для управления сотнями учетных записей прокси на базе Xray-core и созданный с использованием Python и ReactJS. Проект имеет русскоязычную документацию.
Marzban Node - это приложение на Python, предоставляющее сервис для управления экземпляром ядра Xray. Оно использует RPyC для удаленных вызовов процедур и Docker для контейнеризации. Приложение разработано с учетом требований безопасности и использует самоподписанные SSL-сертификаты для связи между сервисом и его клиентами.
Функции:
#Marzban |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
ESP8266 — это не только заурядные смарт-розетки. Благодаря этому микроконтроллеру можно совершать настоящие киберпреступления.
Deauther — это прошивка для Wi-Fi модуля ESP8266. Благодаря ей вы получаете устройство, которое может сканировать сети и точки доступа, производить атаки на сети и отключать от них клиентов. Чтобы предотвратить деаутентификацию, нужно как минимум использовать стандарт 802.11w. Он распространён среди устройств, но не так популярен среди точек доступа.
Управлять устройством можно 3 способами:
Алгоритм использования устройства такой:
Deauther может производить 3 типа атаки:
#ESP8266 #Deauther |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3
HTTPS — это не протокол, а схема URI, то есть инструкция для браузера (или любой программы-клиента), как подключаться к серверу. Схема http:// значит, что браузер должен открыть TCP-соединение и отправлять по нему HTTP-сообщения. Схема https:// значит, что надо открыть TCP-соединение, затем TLS-соединение, и отправлять HTTP-сообщения по нему. Про схему HTTPS говорить не очень интересно, поэтому будем обсуждать именно протокол, который обеспечивает защиту соединения — TLS.
Протоколы HTTP, TCP, IP (которые используются в схеме http) никак не скрывают передаваемые данные. Поэтому нужно как-то «защитить» соединение, то есть сделать так, чтобы мать не могла ни читать, ни изменять сообщения (по крайней мере, оставаясь незамеченной).
Свойство протокола, что никакие сообщения нельзя расшифровать в будущем, даже зная долгосрочные ключи, которые использовались во время соединения, называется прямой секретностью (forward secrecy). Соответственно, если ключи RSA долговременные, прямая секретность не достигается — meh.
Два основных способа защиты от изменений — электронная подпись и MAC (Message Authentication Code, он же имитовстáвка).
Очень похоже на разницу между асимметричным и симметричным шифрованием. Похоже ещё и тем, что MAC производительнее ЭП, соответственно раз уж мы всё равно решили, что шифрование будет симметричным, то и смысла использовать ЭП вместо MAC особого нет — поэтому да будет MAC.
#TLS |
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1👍1
Определяемый спецификацией 802.3 формат кадра практически идентичен своему предшественнику за исключением того, что поле типа протокола имеет смысл длины кадра. На первый взгляд это неизбежно должно привести к путанице, когда кадры Ethernet_II и Ethernet_802.3 передаются между станциями в одном сегменте. Однако на практике эти кадры не представляет труда отличить друг от друга.
Как мы уже говорили, длина поля данных не превышает 1500 байт, поэтому, в соответствии с принятыми соглашениями, тип высокоуровневого протокола задается большим, чем 0х05FE (1518 в шестнадцатеричной системе счисления - полная длина кадра), благо двухбайтное поле может принимать 65 536 разных значений.
Таким образом, если значение поля между адресом отправителя и данными меньше или равно 1518, то это кадр 802.3, в противном случае - это кадр Ethernet_II.
Другое небольшое отличие между Ethernet и 802.3 состоит в классификации групповых адресов. В отличие от Ethernet, спецификация 802.3 подразделяет групповые адреса на имеющие глобальное и локальное значение. Однако это разделение редко используется на практике. (О третьем незначительном отличии - в преамбуле - мы говорили выше.)
В соответствии с эталонной моделью OSI, каждый протокольный блок данных содержит (инкапсулирует) пакеты вышележащих протоколов своего стека. Протокол 802.3 описывает метод доступа к среде передачи - нижний подуровень канального уровня, и для него вышележащим протоколом является протокол логического
#Frame |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Достаточно интересное чтиво из сегмента GEOINT разведки, особенно в формате реального кейса, однозначно, recommend 📖
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from STEIN: ИБ, OSINT
В данном GEOINT кейсе речь пойдёт о исследовании звёздного неба, благодаря которому, в последствии найдут местоположение секретного бомбардировщика по одному лишь фото.
John McElhone — исследователь с Twitter (ныне X) был первым, кому удалось определить местоположение и ориентировочную дату производства снимка.
— Материалы переводил на скорую руку, готовлюсь к SOC-forum, там будет много интересного, постараюсь порадовать вас контентом с мероприятия (13-15 ноября).
#OSINT #GEOINT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🫡5
📋 20 самых ценных ИТ-сертификатов для системных инженеров
Почему профессиональные сертификаты так востребованы в портфолио инженера? Какие преимущества сертификаты дают специалисту? И какие ТОП-20 сертификаций необходимы системному инженеру? Мы постарались собрать ответы в этой статье.
— Во-первых, важную роль играет сам процесс подготовки к сертификационному экзамену. В зависимости от профессионального уровня и области экспертизы кандидата, период подготовки помогает обобщить знания, выявить возможные пробелы и, наконец, сформировать правильное мышление для того, чтобы более уверенно анализировать проектные кейсы, видеть перспективу развития.
ТОП-20 наиболее востребованных сертификатов инженеров:
▫️AWS Certified Solutions Architect – Professional
▫️AWS Certified SysOps Administrator
▫️Certified Cloud Security Professional (CCSP)
▫️Certified Data Privacy Solutions Engineer (CDPSE)
▫️Certified Information Systems Security Professional (CISSP)
▫️Certified Kubernetes Administrator (CKA)
▫️Cisco Certified Internetwork Expert (CCIE)
▫️Cisco Certified Network Professional (CCNP)
▫️Certified CompTIA Cloud+
▫️Google Cloud Platform: Professional Cloud Architect
▫️Google Certified Professional Data Engineer
▫️HashiCorp Certified: Terraform Associate
▫️ITIL 4 Foundation Certified (CPD)
▫️Microsoft Certified Azure Solutions Architect
▫️Microsoft Certified: Azure Administrator Associate
▫️Oracle Certified MySQL Database Administrator (CMDBA)
▫️Project Management Professional (PMP)
▫️Red Hat Certified System Administrator
▫️Red Hat Certified Specialist in Hybrid Cloud Management
▫️VMware Certified Professional 7 – Cloud Management and Automation
Этот список далеко не исчерпывает потенциал важных сертификаций в вашей предметной области. Скорее это рекомендуемый ориентир для тех, кто на пороге принятия решения о следующих шагах в карьере.
💬 Подробнее тут
#ИТ |👨🔬 Сетевик Джонни
Почему профессиональные сертификаты так востребованы в портфолио инженера? Какие преимущества сертификаты дают специалисту? И какие ТОП-20 сертификаций необходимы системному инженеру? Мы постарались собрать ответы в этой статье.
— Во-первых, важную роль играет сам процесс подготовки к сертификационному экзамену. В зависимости от профессионального уровня и области экспертизы кандидата, период подготовки помогает обобщить знания, выявить возможные пробелы и, наконец, сформировать правильное мышление для того, чтобы более уверенно анализировать проектные кейсы, видеть перспективу развития.
ТОП-20 наиболее востребованных сертификатов инженеров:
▫️AWS Certified Solutions Architect – Professional
▫️AWS Certified SysOps Administrator
▫️Certified Cloud Security Professional (CCSP)
▫️Certified Data Privacy Solutions Engineer (CDPSE)
▫️Certified Information Systems Security Professional (CISSP)
▫️Certified Kubernetes Administrator (CKA)
▫️Cisco Certified Internetwork Expert (CCIE)
▫️Cisco Certified Network Professional (CCNP)
▫️Certified CompTIA Cloud+
▫️Google Cloud Platform: Professional Cloud Architect
▫️Google Certified Professional Data Engineer
▫️HashiCorp Certified: Terraform Associate
▫️ITIL 4 Foundation Certified (CPD)
▫️Microsoft Certified Azure Solutions Architect
▫️Microsoft Certified: Azure Administrator Associate
▫️Oracle Certified MySQL Database Administrator (CMDBA)
▫️Project Management Professional (PMP)
▫️Red Hat Certified System Administrator
▫️Red Hat Certified Specialist in Hybrid Cloud Management
▫️VMware Certified Professional 7 – Cloud Management and Automation
Этот список далеко не исчерпывает потенциал важных сертификаций в вашей предметной области. Скорее это рекомендуемый ориентир для тех, кто на пороге принятия решения о следующих шагах в карьере.
#ИТ |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Издательство: 2020 год
Автор: Олифер Виктор Григорьевич, Олифер Наталья Алексеевна
Это издание в некотором смысле особенное — прошло ровно 20 лет с момента выхода книги в свет. 20 лет — это немаленький срок, за это время дети наших первых читателей подросли и, возможно, стали интересоваться компьютерными сетями. И, возможно, у них в руках окажется 6-е издание книги «Компьютерные сети. Принципы, технологии, протоколы». Эта книга значительно отличается от той, которую читали их родители. Многое из того, что интересовало читателей конца 90-х годов — например, правило 4-х хабов, согласование сетей IP и IPX или сравнение технологий 100VG-AnyLAN и FDDI, — совсем не упоминается в последних изданиях. За 20 лет немало технологий прошли полный цикл от модного термина и всеобщего признания к практически полному забвению. Каждое новое издание книги в той или иной мере отражало изменения ландшафта сетевых технологий.
Не является исключением и данное издание — оно значительно переработано, около трети материала представляет собой или совсем новую информацию, или существенно переработанное изложение тем. Например, в книге появилась новая часть «Беспроводные сети», полностью переработана часть, посвященная технологиям первичных сетей SDH, OTN и DWDM.
Издание предназначено для студентов, аспирантов и технических специалистов, которые хотели бы получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления такими сетями.
#books |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
HTTP означает «протокол передачи гипертекста» (или HyperText Transfer Protocol). Он представляет собой список правил, по которым компьютеры обмениваются данными в интернете. HTTP умеет передавать все возможные форматы файлов — например, видео, аудио, текст. Но при этом состоит только из текста.
HTTP состоит из двух элементов: клиента и сервера. Клиент отправляет запросы и ждёт данные от сервера. А сервер ждёт, пока ему придёт очередной запрос, обрабатывает его и возвращает ответ клиенту.
Метод — это действие, которое клиент ждёт от сервера. Например, отправить ему HTML-страницу сайта или скачать документ. Протокол HTTP не ограничивает количество разных методов, но программисты договорились между собой использовать только три основных:
HTTP-запрос содержит четыре элемента:
Метод указывает, какое действие нужно совершить. URI — это путь до конкретного файла на сайте. Версию HTTP нужно указывать, чтобы избежать ошибок, а адрес хоста помогает браузеру определить, куда отправлять HTTP-запрос.
HTTP-ответ имеет три части:
В статусе ответа сообщается, всё ли прошло успешно и возникли ли ошибки. В заголовках указывается дополнительная информация, которая помогает браузеру корректно отобразить файл. А в тело ответа сервер кладёт запрашиваемый файл.
#HTTP |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤3
VPN – это обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений поверх другой сети.
Плюсы платных:
Минусы платных:
Предлагающие платную, бесплатную или ограниченно-бесплатную подписки:
▫️NordVPN
▫️Surfshark
Лучшие VPN с бесплатной версией:
▫️ProtonVPN
▫️AtlasVPN
▫️1.1.1.1
▫️Lantern
#VPN |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Средства динамического тестирования безопасности (DAST) выполняют автоматическое сканирование, которое имитирует вредоносные внешние атаки с попытками эксплуатации распространенных уязвимостей.
Их задача – обнаружить незапланированные результаты раньше, чем это сделают злоумышленники. Чтобы обнаружить уязвимости, средства DAST проверяют все точки доступа по HTTP, а также моделируют случайные действия и работу пользователей.
#DAST |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Базовые знания языка программирования Python нужны этичным хакерам для работы со множеством инструментов и написания своих.
Почему язык программирования Python хорош для работы в кибербезопасности?
#Python #Hacking #ethicalhack |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Менеджеры паролей — это приложения, созданные для того, чтобы пользователи могли хранить свои пароли в одном месте и избавлять себя от необходимости запоминать каждый из своих паролей.
Они, в свою очередь, побуждают клиентов использовать максимально сложные пароли и запоминать один мастер-пароль.
Современные менеджеры паролей делают все возможное, чтобы защитить другую информацию, такую как данные карты, файлы, квитанции и т. д., от посторонних глаз.
#Linux |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Распределенные атаки типа DDoS — это набор хакерских действий, направленных на сбой или нарушение работоспособности различных видов инфраструктур в сети, будь то простой веб-сайт или большой клиентский сервис.
Принцип атаки прост и заключается в создании лавинообразного роста запросов к онлайн-ресурсу для искусственного увеличения нагрузки на него и последующего вывода его из строя.
Сложность защиты от DDoS-атак заключается в распределенности атакующих хостов. Заблокировать трафик с помощью брандмауэра довольно непросто.
#DDoS |
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3👎1
Open Web Application Security Project (OWASP) – открытый проект по обеспечению безопасности приложений, все материалы которого доступны бесплатно на веб-сайте некоммерческой организации OWASP Foundation.
— Поставляемые материалы включают документацию, мероприятия, форумы, проекты, инструменты и видео, такие как OWASP Top 10, веб-протоколы OWASP CLASP и OWASP ZAP, а также сканер веб-приложений с открытым исходным кодом.
OWASP Top 10 – это отчет или информационный документ, в котором перечислены основные проблемы, связанные с безопасностью веб-приложений.
Он регулярно обновляется, чтобы постоянно отображать 10 наиболее серьезных рисков, с которыми сталкиваются организации.
#OWASP |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🫡2