[dagctf 2015] hacking motivation

32
Хакерский мини-ликбез Омар Ганиев DagCTF 2015 Махачкала

Upload: beched

Post on 22-Jan-2018

646 views

Category:

Software


1 download

TRANSCRIPT

Page 1: [DagCTF 2015] Hacking motivation

Хакерский мини-ликбез

Омар Ганиев

DagCTF 2015

Махачкала

Page 2: [DagCTF 2015] Hacking motivation

Кто я?

• Beched (ahack.ru, @ahack_ru)

• Эксперт в IncSecurity (анализ защищённости)

• Участник независимого сообщества и CTF-команды RDot.Org

• Alma Mater – матфак НИУ-ВШЭ

Page 3: [DagCTF 2015] Hacking motivation

Профессии

• В Информационной Безопасности много различных персонажей, областей, специализаций

• Поговорим о некоторых из них и о том, какую пользу для их представителей может сыграть CTF

Page 4: [DagCTF 2015] Hacking motivation

Классификация

• Black hat vs White hat

• Консультант (например, пентестер) vsвнутренний безопасник (админ, CISO, security-разработчик)

• Attack vs Defence

• Application security vs Infrastructure security

Page 5: [DagCTF 2015] Hacking motivation

Для кого CTF?

• В целом для всех

• Task-based CTF главным образом прокачивает скиллы в application security

• В attack-defence CTF больше тактики, специфичного инструментария и системного администрирования

Page 6: [DagCTF 2015] Hacking motivation

Но зачем?

• Интересный способ быстро прокачивать определённые знания и умения

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

• Хороший пункт в резюме. При наличии успехов, конечно =)

Page 7: [DagCTF 2015] Hacking motivation

Мотивация

• В столь спортивном регионе соревновательный дух может быть хорошим стимулом =)

• Рынок ИБ приходит вслед за рынком ИТ, можно быть в числе пионеров

• В целом в стране в ИБ есть нехватка кадров (как «хакерских», так и «админских»)

Page 8: [DagCTF 2015] Hacking motivation

Применение

• Навыки, полученные в CTF, хорошо конвертируются в различных прикладных областях

• Например, в пентестах (тестировании на проникновение) обычно нужно проверить систему (сеть, сайт и т.д.) за довольно короткое время

• На CTF вы занимаетесь примерно тем же самым, только время очень короткое, что учит, помимо стандартных вещей, работать и думать быстрее, а также придумывать нестандартные решения

Page 9: [DagCTF 2015] Hacking motivation

Применение

• То же самое касается анализа защищённости приложений

• Надо отметить, что CTF-соревнования высочайшего уровне в основном смещены в сторону именно анализа приложений, причём, как правило, без исходных текстов

• Категорию задач на взлом скомпилированных приложений обычно называют Pwn или Exploiting

• Категорию задач на взлом веб-приложений называют Web

Page 10: [DagCTF 2015] Hacking motivation

Применение

• В пвне полезны навыки реверс-инижиниринга (реверс, reverse-engineering)

• Сами по себе эти навыки тоже востребованы, преимущественно антивирусными компаниями

• Malware-аналитики разбирают алгоритмы работы вирусов для разработки алгоритмов их детектирования

Page 11: [DagCTF 2015] Hacking motivation

Применение

• Помимо собственно взлома, в CTF часто бывают задачи на программирование (категория PPC, professional programming and coding)

• В этой категории нужно автоматизировать какой-то процесс, ловко используя готовые библиотеки, а также используя знания алгоритмов

Page 12: [DagCTF 2015] Hacking motivation

Применение

• Категория Forensics учит расследованиям и криминалистике

• Вам нужно разбирать образы дисков и дампы трафика в поисках ключей, паролей, следов каких-то действий

• В России этот рынок есть уже несколько лет и пользуется спросом, поскольку квалификация сотрудников МВД крайне низкая

Page 13: [DagCTF 2015] Hacking motivation

Применение

• В российских студенческих CTF также иногда бывает категория Admin, где нужно настроить или исправить какой-то сетевой сервис

• Админские навыки также хорошо растут в Attack-defence CTF, где нужно защищать свою инфраструктуру от других команд

• Есть даже отдельная олимпиада для сисадминов – Ya.Root. Её организовываласильная CTF-команда HackerDom из Екатеринбурга

Page 14: [DagCTF 2015] Hacking motivation

Tips’n’tricks

• Теперь к делу• Рассмотрим некоторые приёмы и инструменты,

которые помогут вам• Предполагается, что у вас есть базовые навыки

программирования (почти все юзают Python), вы можете поставить виртуалку с линуксом, если у вас не линукс, и вы понимаете по-английски

• Ну и, конечно, самое главное – это умение гуглить и желание обучаться

• Если это не про вас, скорее научитесь, это несложно =)

Page 15: [DagCTF 2015] Hacking motivation

Tips’n’tricks [OS]

• Для большинства хакеров обязательно иметь под рукой и уметь использовать Linux-дистрибутив

• Есть хакерские дистрибутивы, напичканные различными утилитами для анализа защищённости. Самый известный – KALI Linux

• Надо научиться шустро взаимодействовать с командной строкой, в этом могут помочь man (документация) и небольшие wargame’ы с задачами по bash-скриптингу. Такой есть на overthewire

Page 16: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Web]

• Для анализа веб-приложений нужен, очевидно, браузер

• Обязательно пригодятся инструменты разработчика и JavaScript-консоль, встроенные в браузер. Это нужно для просмотра используемых ресурсов, отладки client-side кода сайта и мониторинга сетевой активности

• Главный современный инструмент веб-хакера –это Burp Suite. Это локальный прокси-сервер и целый набор различных утилит, и сканеров уязвимостей

Page 17: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Web]

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

• Они избавляют от некоторой рутины, но могут помешать научиться понимать суть уязвимостей, к тому же могут навредить приложению (что будет актуально, когда вы будете анализировать реальные сайты заказчиков)

Page 18: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Web]

• Изучите известные типы атак и уязвимостей: SQL-injection, XSS, RCE, …

• Изучите PHP и специфичные для PHP уязвимости (это один из самых дырявых языков)

• Научитесь устанавливать и настраивать стек LAMP (Linux+Apache+MySQL+PHP), экспериментируйте у себя с различными уязвимыми приложениями

Page 19: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Web]

• Разбирайте опубликованные уязвимости и CTF write-up’ы (это касается всех категорий)

• Решайте задачи с http://ringzer0team.com/, http://ahack.ru/contest/ и других варгеймов

• Качайте исходники малоизвестных CMS (http://php.opensourcecms.com/) и ищите там уязвимости. Чем больше, тем лучше. Это то, чем занимаются аудиторы кода на работе. Заодно найдёте 0day в реальном продукте и сможете хвастаться =)

Page 20: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Web]

• Участвуйте в BugBounty (например, https://hackerone.com/), там вы можете легально ломать различные компании и получать за найденные уязвимости

• Читайте книги: «The Tangled Web», «The Web Application Hacker’s Handbook», «OWASP Testing Guide»

Page 21: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Pwn]

• Учите Си и Ассемблер. Учитесь отлаживать, дизассемблировать, декомпилировать. Словом, реверсить

• Опять-таки, разбирайте публикации, читайте код, пробуйте у себя

• Инструменты: gdb, peda, objdump, IDA, …

• Варгеймы: http://overthewire.org/, http://io.smashthestack.org/, http://exploit-exercises.com/, http://pwning.kr/

Page 22: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Pwn]

• Книги: «Хакинг. Искусство эксплойта», «The Shellcoder’s Handbook»

• Есть BugBounty и для пвнеров. Обычно это рынок 0day, где один эксплойт может стоить несколько миллионов рублей

Page 23: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Forensic]

• Изучайте сетевые протоколы, модель OSI, научитесь пользоваться tcpdump и WireShark

• Изучите особенности операционных и файловых систем (NTFS, ext, FAT, …)

• Освойте инструменты volatility framework и foremost

Page 24: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Forensic]

• Попробуйте снять дамп сетевого трафика во время проведения какой-нибудь атаки или простого сёрфинга. Посмотрите, что можно понять по дампу

• Попробуйте снять дамп памяти виртуальной машины с запущенным приложением и найти при помощи этих инструментов какие-то важные данные в памяти

• Попробуйте снять образ диска и проанализировать его, найти удалённые файлы, криптоконтейнеры, бекдоры

Page 25: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Reverse]

• Учите Си, Ассемблер, освойте IDA, (Olly|Win)Dbg, научитесь отлаживать приложения и понимать чужой код

• Изучите архитектуру ЭВМ, способ представления различных типовых данных в памяти, компьютерную арифметику

• Освойте инструменты SAT-солвинга (Microsoft z3)

Page 26: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Reverse]

• Изучите технологии обфускации, упаковки, виртуализации и изучите различные архитектуры, процессоры и диалекты asm

• Решайте крякмисы

• Будьте усидчивы, реверсить иногда приходится долго =)

Page 27: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Crypto]

• Научитесь атаковать простейшие классические шифры (подстановки, Цезаря, Виженера), ребусы, XOR-шифры

• Изучите основы теории чисел, дискретной математики и абстрактной алгебры

• Освойте пакеты SageMath, Wolfram Mathematica

• Научитесь атаковать более современные криптоалгоритмы: RSA, блочные шифры (DES, AES)

Page 28: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Crypto]

• Пройдите курс Cryptography на MOOC Coursera

• Учитесь аккуратно читать код (на цтфах это в основном Python) и извлекать из него понимание того, какой алгоритм нужно использовать

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

Page 29: [DagCTF 2015] Hacking motivation

Tips’n’tricks [PPC]

• Изучите Python и различные библиотеки для обработки текстов, изображений, различных форматов файлов

• Изучите основы алгоритмов и структур данных, алгоритмы на графах (DFS, BFS, Dijkstra, A*)

• Много практикуйтесь. Если интересны алгоритмические олимпиадные задачи, го на https://codeforces.com/

Page 30: [DagCTF 2015] Hacking motivation

Tips’n’tricks [Admin]

• Настраивайте всё, что только можно встретить в инфраструктуре

• Винда, линукс, веб-серверы, FTP, DNS, почта, кластеры, СУБД, виртуальные машины, сетевое оборудование

• В Attack-defence цтфах часто нужны грязные защитные хаки вроде NAT’инга трафика, простейшей фильтрации a la IDS/IPS

Page 31: [DagCTF 2015] Hacking motivation

Заключение

• В заключение ничего нового не скажешь

• TRAIN HARD

• Google, Twitter, blogs, RDot, CTF, write-ups, documentation, coding, testing, research

• Надеюсь, узнали и запомнили что-то полезное

• Обязательно вступайте в группу https://vk.com/dagctf