Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
Дмитрий Щадей "Зачем и как мы используем jsLint"Yandex
Все знают, что «JSLint – статический анализатор кода», но никто не спешит его использовать в собственных проектах. В докладе рассказывается о том, каким образом и какой ценой он упростит вам жизнь. И разумеется, поставлен вопрос «почему» перед каждой jslint-овой ошибкой, а также рассматривается, как можно интегрировать JSLint в ваш проект.
CVEhound is a tool for checking Linux kernel source archives for known CVEs. Allows one to easily audit their phones, routers, servers, etc. for missing CVE fixes from upstream kernel development. The talk will include a brief description of the CVE patching workflow in the Linux kernel and demonstration of the CVEhound tool.
https://zeronights.ru/en/reports-en/cvehound-check-linux-sources-for-known-cves/
Введение в реверс-инжиниринг вредоносного ПО - Сергей ХарюкHackIT Ukraine
Презентация с форума http://hackit-ukraine.com/
Сергей Харюк
Вирусный аналитик, Zillya
Введение в реверс-инжиниринг вредоносного ПО
О спикере: Администратор форума посвященого тематике ревер-инжиниринга, изучает тему реверс-инжиниринга более 5 лет. Работает вирусным аналитиком в антивирусной лаборатори "Zillya".
Practical Language for Extracting Data from Source Codes and Preparing Them f...Denis Efremov
Talk at Yandex Perl Meetup (06 June 2018). The presentation is about how tools written in Perl can be used for verification of Linux kernel modules. Various types of source code transformations with style preservation, interactive callgraphs, report with various complexity metrics creation. How we use the tools in the AstraVer project for writing formal specifications (ACSL) on code and how it helps us with regulatory certification. The tools: https://github.com/evdenis/spec-utils
Дмитрий Щадей "Зачем и как мы используем jsLint"Yandex
Все знают, что «JSLint – статический анализатор кода», но никто не спешит его использовать в собственных проектах. В докладе рассказывается о том, каким образом и какой ценой он упростит вам жизнь. И разумеется, поставлен вопрос «почему» перед каждой jslint-овой ошибкой, а также рассматривается, как можно интегрировать JSLint в ваш проект.
CVEhound is a tool for checking Linux kernel source archives for known CVEs. Allows one to easily audit their phones, routers, servers, etc. for missing CVE fixes from upstream kernel development. The talk will include a brief description of the CVE patching workflow in the Linux kernel and demonstration of the CVEhound tool.
https://zeronights.ru/en/reports-en/cvehound-check-linux-sources-for-known-cves/
Введение в реверс-инжиниринг вредоносного ПО - Сергей ХарюкHackIT Ukraine
Презентация с форума http://hackit-ukraine.com/
Сергей Харюк
Вирусный аналитик, Zillya
Введение в реверс-инжиниринг вредоносного ПО
О спикере: Администратор форума посвященого тематике ревер-инжиниринга, изучает тему реверс-инжиниринга более 5 лет. Работает вирусным аналитиком в антивирусной лаборатори "Zillya".
Practical Language for Extracting Data from Source Codes and Preparing Them f...Denis Efremov
Talk at Yandex Perl Meetup (06 June 2018). The presentation is about how tools written in Perl can be used for verification of Linux kernel modules. Various types of source code transformations with style preservation, interactive callgraphs, report with various complexity metrics creation. How we use the tools in the AstraVer project for writing formal specifications (ACSL) on code and how it helps us with regulatory certification. The tools: https://github.com/evdenis/spec-utils
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
Вадим Крючков [Long], руководитель группы разработки, компания Agunga
Считается (в общем случае — вполне справедливо), что писать демонов на PHP — моветон. Использовать для прототипирования интерфейсов взаимодействия — можно, а вот в продакшене ни-ни. Именно с таким представлением мы начинали разработку новой версии игры — проработаем интерфейсы взаимодействия с демоном, который к запуску будет переписан на высокопроизводительном С. Однако, первые тесты демона, написанного на PHP с использованием libevent, заставили нас серьезно задуматься — а нужен ли нам переход на С? Какую производительность нам удалось достичь? Течет ли память? Обо всем этом будет рассказано в докладе. А так же - особенности использования и недокументированные возможности расширения, облегчающие рутинные операции
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
Универсальный сигнатурный анализ кода на C#, Java, PHPИван Кочуркин
В данном докладе затронуты такие темы, как теория и проблемы парсинга, построение и обход абстрактных синтаксических деревьев (AST) и разработка предметно-ориентированного языка (DSL).
Рассматриваются такие проблемы парсинга, как разбор контекстно-зависимых языков, обработка ошибок и др. В качестве примера применения теории приведена грамматика PHP, разработанная для генератора парсеров ANTLR.
Далее рассматриваются структура унифицированного AST, методы его обхода и сопоставления с паттернами.
Завершающей частью презентации является описание DSL, разработанного с целью записи существующих и будущих паттернов. Также приведены примеры некоторых паттернов для лучшей усвояемости материала.
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
Ведущие: Денис Колегов и Арсений Реутов
Авторы доклада продемонстрируют, как внедрение клиентских сценариев JavaScript может быть использовано для обнаружения и предотвращения различных атак, поиска уязвимых клиентских компонент, определения утечек данных об инфраструктуре веб-приложений, выявления веб-ботов и инструментальных средств нападения. Поделятся собственными методами обнаружения инъекций при помощи синтаксических анализаторов без сигнатур и фильтрующих регулярных выражений, а также рассмотрят реализацию концепции JavaScript-ловушек на стороне клиента для атак SSRF, IDOR, Command Injection и CSRF.
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Andrey Karpov
Есть ошибки, которые легко прячутся от программистов на обзорах кода. Чаще всего они связаны с опечатками или недостаточным знанием тонких нюансах языка/библиотеки. Давайте посмотрим интересные примеры таких ошибок и как их можно выявить с помощью статического анализа. При этом анализаторы не конкурируют с обзорами кода или, например, юнит-тестами. Они отлично дополняют другие методологии борьбы с ошибками.
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 13:00
Тезисы:
http://ritfest.ru/2017/abstracts/2798.html
В данном докладе будет рассмотрено множество вопросов, с которыми сталкивается AppSec-отдел - как генерировать анти-CSRF токены, где хранить секретные ключи, как тестировать безопасность в сжатые сроки и многое, многое другое.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
Поиск уязвимостей с использованием статического анализа кодаcorehard_by
Поиск уязвимостей с использованием статического анализа кода, Андрей Карпов и Евгений Рыжков
В последнее время мы все слышим о новых и новых уязвимостях, обнаруженных в программном обеспечении. Уже стало очевидно, что писать код без уязвимостей человечество не может. Но могут ли современные инструменты разработки помочь обнаружить хотя бы некоторые ошибки? В докладе НЕ будет фраз типа «купите такой-то инструмент, чтобы не допускать уязвимостей в своем и чужом коде». На реальных примерах мы попробуем показать какие типы уязвимостей или по-другому программных дефектов могут быть найдены с помощью технологий анализа кода, а какие – пока нет. Ну и конечно как писать код так, чтобы снизить вероятность появления уязвимостей в своем коде.
Similar to Приемы, затрудняющие обнаружение и анализ вредоносного кода в PHP скриптах (20)
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежногоrevisium
Как и зачем взламывают сайты, как монетизируют взломанные сайты. Ошибки, заблуждения веб-специалистов или владельцев сайтов про безопасность. Как защищать сайты от взлома.
Как обеспечить безопасность клиентских сайтовrevisium
Какие организационные меры защиты сайтов гарантируют отсутствие взлома и заражения вирусами, компрометацию доступов, раскрытие конфиденциальных данных. Как управлять доступами, как организовать работу сотрудников и подрядчиков с клиентскими сайтами внутри компании, о чем нужно помнить фрилансерам при работе с сайтами заказчиков.
Обзор текущей ситуации с веб-атаками на сайты малого и среднего бизнеса, целевые/нецелевые атаки, особенности взломов сайтов 2015-2016 года, тенденции.
Яндекс.Вебмастерская №3: как найти вирусы и вредоносный код на сайтеrevisium
Основные методы автоматизированного поиска вредоносного кода на заражённом сайте с помощью сканеров и антивирусов (Manul, AI-Bolit, ClamAV, Maldet, антивирусных программ);
Эвристический подход к поиску вирусов на сайте в режиме командной строки (всемогущие FIND и GREP);
Поиск вредоносного кода с помощью проксирования и анализа HTTP-трафика (веб-прокси Fiddler, Charles);
Сторонние сервисы (Яндекс.Вебмастер, Quttera, Sucuri SiteCheck);
и другие варианты (VCS, Integrity Check, встроенные антивирусы CMS и т. д.).
Лечение мобильных, поисковых редиректов и дорвеев на сайте revisium
- Зачем взламывают сайты
- Какие виды вредоносного кода встречаются на сайте
- Как поймать, проанализировать и удалить мобильный и поисковый редирект
- Как найти и удалить дорвеи
- Угрозы спам-рассылок, дефейс, нагрузка на cpu
- Реальные кейсы по лечению сайтов компании "Ревизиум"
2. Интро
Разработчики вредоносов используют шифрование,
обфускацию, различные ухищрения и возможности php
Две цели: 1) затруднить обнаружение 2) затруднить
анализ
Самые “живучие” скрипты – использующие оба подхода
Методы могут использоваться разработчиками защиты
лицензионного софта
Обнаружение выполняется по:
Контрольным суммам, хэшам
По сигнатурам (фикс. строки, “регулярки”)
Нечетким правилам, эвристике
10 приемов для затруднения обнаружения и 9 приемов
затруднения анализа
6. Затруднение обнаружения 4
“Мимикрия” php кода (маскировка под важный код)
Обрамление кода пугающими комментариями вида “DO NOT
DELETE THIS CODE OTHERWISE SCRIPT DOESN’T OPERATE
PROPERLY…”
Приклеивание к многострочным комментариям
Размещение кода между или после больших комментариев
8. Затруднение обнаружения 6
Код, написанный согласно coding style и/или
вставленный в середину большого скрипта, ООП код,
вставка внутрь функций или классов
19. Затруднение анализа: использование В.И.Д.
Использование внешних источников данных в качестве
хранилища кода
БД
Внешний сервер
Локальный файл
Memcached
COOKIE, переменные окружения, параметры скрипта
Мета-данные файлов изображений
20. Затруднение анализа: неявный вызов
Динамическое формирование кода и неявные вызовы
выполнение кода через eval, assert, *sort, array* и разные итераторы
выполнение кода через preg_replace('/.*/e')
косвенный вызов функции $a($b)
выполнение кода через preg_replace_callback
через регистрацию функции завершения register_shutdown_function
использование механизма autoload (2 варианта)
использование обработчика сессии session_set_save_handler
вызов через обработчик исключений set_exception_handler
использование обработчика ошибок set_error_handler
использование собственного загрузчика сущностей
libxml_set_external_entity_loader
создание собственного стрима для неявного вызова кода
stream_wrapper_register
php_auto_append / php_auto_prepend
динамическая загрузка расширений функцией dl()
21. Затруднение анализа: антиреверс
Использование проверок, затрудняющих реверс-
инжиниринг
защита от декодирования за счет проверки на наличие в коде
скрипта функций echo, print, var_dump, print_r и аварийное
завершение при обнаружении
проверка в скрипте, что код запускается в окружении сервера или
конкретного сайта
авторизация по входным параметрам. Код выполняется только
при определенных значениях параметров запроса
23. Сканеры вредоносных скриптов на сервере
AI-Bolit (http://revisium.com/ai/ )
Ищет по регулярным выражениям, а не хэшам. Большая
база, эвристика.
ClamAv (http://www.clamav.net/lang/en/ )
Самый популярный на хостингах. Ищет по хэшам.
Maldet (https://www.rfxn.com/projects/linux-malware-
detect/ )
Большая база хэшей.
Десктопные антивирусы (с оговорками)
“Ручки” (find/grep в командной строке)
Самый доступный инструмент. Хорошо работает у
админов, которые знают свои сервера и сайты.