2. Кто я?
• Beched (ahack.ru, @ahack_ru)
• Эксперт в IncSecurity (анализ
защищённости)
• Участник независимого сообщества и CTF-
команды RDot.Org
• Alma Mater – матфак НИУ-ВШЭ
3. Профессии
• В Информационной Безопасности много
различных персонажей, областей,
специализаций
• Поговорим о некоторых из них и о том,
какую пользу для их представителей может
сыграть CTF
4. Классификация
• Black hat vs White hat
• Консультант (например, пентестер) vs
внутренний безопасник (админ, CISO,
security-разработчик)
• Attack vs Defence
• Application security vs Infrastructure security
5. Для кого CTF?
• В целом для всех
• Task-based CTF главным образом
прокачивает скиллы в application security
• В attack-defence CTF больше тактики,
специфичного инструментария и
системного администрирования
6. Но зачем?
• Интересный способ быстро прокачивать
определённые знания и умения
• Развитие «олимпиадной» смекалки, умения
быстро разбираться с незнакомой задачей
• Хороший пункт в резюме. При наличии
успехов, конечно =)
7. Мотивация
• В столь спортивном регионе
соревновательный дух может быть
хорошим стимулом =)
• Рынок ИБ приходит вслед за рынком ИТ,
можно быть в числе пионеров
• В целом в стране в ИБ есть нехватка кадров
(как «хакерских», так и «админских»)
8. Применение
• Навыки, полученные в CTF, хорошо
конвертируются в различных прикладных
областях
• Например, в пентестах (тестировании на
проникновение) обычно нужно проверить
систему (сеть, сайт и т.д.) за довольно короткое
время
• На CTF вы занимаетесь примерно тем же
самым, только время очень короткое, что учит,
помимо стандартных вещей, работать и думать
быстрее, а также придумывать нестандартные
решения
9. Применение
• То же самое касается анализа защищённости
приложений
• Надо отметить, что CTF-соревнования
высочайшего уровне в основном смещены в
сторону именно анализа приложений, причём,
как правило, без исходных текстов
• Категорию задач на взлом скомпилированных
приложений обычно называют Pwn или
Exploiting
• Категорию задач на взлом веб-приложений
называют Web
10. Применение
• В пвне полезны навыки реверс-
инижиниринга (реверс, reverse-engineering)
• Сами по себе эти навыки тоже востребованы,
преимущественно антивирусными
компаниями
• Malware-аналитики разбирают алгоритмы
работы вирусов для разработки алгоритмов
их детектирования
11. Применение
• Помимо собственно взлома, в CTF часто
бывают задачи на программирование
(категория PPC, professional programming and
coding)
• В этой категории нужно автоматизировать
какой-то процесс, ловко используя готовые
библиотеки, а также используя знания
алгоритмов
12. Применение
• Категория Forensics учит расследованиям и
криминалистике
• Вам нужно разбирать образы дисков и
дампы трафика в поисках ключей, паролей,
следов каких-то действий
• В России этот рынок есть уже несколько лет
и пользуется спросом, поскольку
квалификация сотрудников МВД крайне
низкая
13. Применение
• В российских студенческих CTF также иногда
бывает категория Admin, где нужно настроить
или исправить какой-то сетевой сервис
• Админские навыки также хорошо растут в
Attack-defence CTF, где нужно защищать свою
инфраструктуру от других команд
• Есть даже отдельная олимпиада для
сисадминов – Ya.Root. Её организовывала
сильная CTF-команда HackerDom из
Екатеринбурга
14. Tips’n’tricks
• Теперь к делу
• Рассмотрим некоторые приёмы и инструменты,
которые помогут вам
• Предполагается, что у вас есть базовые навыки
программирования (почти все юзают Python), вы
можете поставить виртуалку с линуксом, если у
вас не линукс, и вы понимаете по-английски
• Ну и, конечно, самое главное – это умение
гуглить и желание обучаться
• Если это не про вас, скорее научитесь, это
несложно =)
15. Tips’n’tricks [OS]
• Для большинства хакеров обязательно иметь
под рукой и уметь использовать Linux-
дистрибутив
• Есть хакерские дистрибутивы, напичканные
различными утилитами для анализа
защищённости. Самый известный – KALI Linux
• Надо научиться шустро взаимодействовать с
командной строкой, в этом могут помочь man
(документация) и небольшие wargame’ы с
задачами по bash-скриптингу. Такой есть на
overthewire
16. Tips’n’tricks [Web]
• Для анализа веб-приложений нужен, очевидно,
браузер
• Обязательно пригодятся инструменты
разработчика и JavaScript-консоль, встроенные в
браузер. Это нужно для просмотра
используемых ресурсов, отладки client-side кода
сайта и мониторинга сетевой активности
• Главный современный инструмент веб-хакера –
это Burp Suite. Это локальный прокси-сервер и
целый набор различных утилит, и сканеров
уязвимостей
17. Tips’n’tricks [Web]
• Иногда могут помочь хорошие
автоматические сканеры, такие как Acunetix
WVS, но не стоит ими злоупотреблять
• Они избавляют от некоторой рутины, но
могут помешать научиться понимать суть
уязвимостей, к тому же могут навредить
приложению (что будет актуально, когда вы
будете анализировать реальные сайты
заказчиков)
18. Tips’n’tricks [Web]
• Изучите известные типы атак и
уязвимостей: SQL-injection, XSS, RCE, …
• Изучите PHP и специфичные для PHP
уязвимости (это один из самых дырявых
языков)
• Научитесь устанавливать и настраивать стек
LAMP (Linux+Apache+MySQL+PHP),
экспериментируйте у себя с различными
уязвимыми приложениями
19. Tips’n’tricks [Web]
• Разбирайте опубликованные уязвимости и
CTF write-up’ы (это касается всех категорий)
• Решайте задачи с http://ringzer0team.com/,
http://ahack.ru/contest/ и других варгеймов
• Качайте исходники малоизвестных CMS
(http://php.opensourcecms.com/) и ищите
там уязвимости. Чем больше, тем лучше. Это
то, чем занимаются аудиторы кода на
работе. Заодно найдёте 0day в реальном
продукте и сможете хвастаться =)
20. Tips’n’tricks [Web]
• Участвуйте в BugBounty (например,
https://hackerone.com/), там вы можете
легально ломать различные компании и
получать за найденные уязвимости
• Читайте книги: «The Tangled Web», «The Web
Application Hacker’s Handbook», «OWASP
Testing Guide»
21. Tips’n’tricks [Pwn]
• Учите Си и Ассемблер. Учитесь отлаживать,
дизассемблировать, декомпилировать.
Словом, реверсить
• Опять-таки, разбирайте публикации,
читайте код, пробуйте у себя
• Инструменты: gdb, peda, objdump, IDA, …
• Варгеймы: http://overthewire.org/,
http://io.smashthestack.org/, http://exploit-
exercises.com/, http://pwning.kr/
22. Tips’n’tricks [Pwn]
• Книги: «Хакинг. Искусство эксплойта», «The
Shellcoder’s Handbook»
• Есть BugBounty и для пвнеров. Обычно это
рынок 0day, где один эксплойт может
стоить несколько миллионов рублей
23. Tips’n’tricks [Forensic]
• Изучайте сетевые протоколы, модель OSI,
научитесь пользоваться tcpdump и
WireShark
• Изучите особенности операционных и
файловых систем (NTFS, ext, FAT, …)
• Освойте инструменты volatility framework и
foremost
24. Tips’n’tricks [Forensic]
• Попробуйте снять дамп сетевого трафика во
время проведения какой-нибудь атаки или
простого сёрфинга. Посмотрите, что можно
понять по дампу
• Попробуйте снять дамп памяти виртуальной
машины с запущенным приложением и найти
при помощи этих инструментов какие-то важные
данные в памяти
• Попробуйте снять образ диска и
проанализировать его, найти удалённые файлы,
криптоконтейнеры, бекдоры
25. Tips’n’tricks [Reverse]
• Учите Си, Ассемблер, освойте IDA,
(Olly|Win)Dbg, научитесь отлаживать
приложения и понимать чужой код
• Изучите архитектуру ЭВМ, способ
представления различных типовых данных в
памяти, компьютерную арифметику
• Освойте инструменты SAT-солвинга (Microsoft
z3)
26. Tips’n’tricks [Reverse]
• Изучите технологии обфускации, упаковки,
виртуализации и изучите различные
архитектуры, процессоры и диалекты asm
• Решайте крякмисы
• Будьте усидчивы, реверсить иногда
приходится долго =)
27. Tips’n’tricks [Crypto]
• Научитесь атаковать простейшие классические
шифры (подстановки, Цезаря, Виженера),
ребусы, XOR-шифры
• Изучите основы теории чисел, дискретной
математики и абстрактной алгебры
• Освойте пакеты SageMath, Wolfram
Mathematica
• Научитесь атаковать более современные
криптоалгоритмы: RSA, блочные шифры (DES,
AES)
28. Tips’n’tricks [Crypto]
• Пройдите курс Cryptography на MOOC Coursera
• Учитесь аккуратно читать код (на цтфах это в
основном Python) и извлекать из него
понимание того, какой алгоритм нужно
использовать
• Чаще всего на цтфах используют известные
алгоритмы и атаки. Если получится нагуглить
по ключевым признакам этот алгоритм,
решение может оказаться в Википедии
29. Tips’n’tricks [PPC]
• Изучите Python и различные библиотеки для
обработки текстов, изображений, различных
форматов файлов
• Изучите основы алгоритмов и структур
данных, алгоритмы на графах (DFS, BFS,
Dijkstra, A*)
• Много практикуйтесь. Если интересны
алгоритмические олимпиадные задачи, го на
https://codeforces.com/
30. Tips’n’tricks [Admin]
• Настраивайте всё, что только можно встретить
в инфраструктуре
• Винда, линукс, веб-серверы, FTP, DNS, почта,
кластеры, СУБД, виртуальные машины,
сетевое оборудование
• В Attack-defence цтфах часто нужны грязные
защитные хаки вроде NAT’инга трафика,
простейшей фильтрации a la IDS/IPS
31. Заключение
• В заключение ничего нового не скажешь
• TRAIN HARD
• Google, Twitter, blogs, RDot, CTF, write-ups,
documentation, coding, testing, research
• Надеюсь, узнали и запомнили что-то полезное
• Обязательно вступайте в группу
https://vk.com/dagctf