Безопасность компьютерных систем 2017 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(+ dex2jar, JD-GUI)
Строка 45: Строка 45:
 
2. Установить Burp Suite Free Edition: https://portswigger.net/burp/freedownload
 
2. Установить Burp Suite Free Edition: https://portswigger.net/burp/freedownload
  
3. Установить SQlite browser: http://sqlitebrowser.org/
+
2. Скачать dex2jar: https://github.com/pxb1988/dex2jar/releases/download/2.0/dex-tools-2.0.zip
  
4. Скачать уязвимое приложения для тестов: http://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz
+
3. Скачать JD-GUI: http://jd.benow.ca/
 +
 
 +
4. Установить SQlite browser: http://sqlitebrowser.org/
 +
 
 +
5. Скачать уязвимое приложения для тестов: http://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz
  
 
'''Желательно:'''
 
'''Желательно:'''

Версия 11:38, 7 сентября 2017

Безопасность компьютерных систем

Курс по выбору для студентов 3 и 4 курса ФКН ВШЭ, осень 2017 года (1 и 2 модуль). Курс состоит из лекций и семинаров. Основной акцент сделан на безопасности приложений и разработке безопасного программного обеспечения.

План курса

Лекции:

  1. (05.09) Вводная лекция. Безопасность приложений как фактор технологической конкуренции. Уязвимости программного обеспечения и атаки на них.
  2. (12.09) Основные понятия и определения. Модель нарушителя.
  3. (19.09) Безопасность приложений. Мобильные приложений и их уязвимости.
  4. (26.09) Безопасность приложений. Уязвимости веб-приложений ч. 1.
  5. (03.10) Безопасность приложений. Уязвимости веб-приложений ч. 2.
  6. (10.10) Безопасность приложений. Исполнение программ на процессоре, стек, подпрограммы и функции, передача аргументов, возврат значения. Системные вызовы. Размещение объектов в памяти: статическое, динамическое, автоматическое. Загрузчик программных модулей. Формат исполняемых файлов ELF. Зависимости модулей. Символы. Уязвимости, связанные с переполнением буфера.Уязвимости, связанные с подменой программных модулей. Уязвимости, связанные с некорректной проверкой прав доступа, TOCTOU.
  7. (17.10) Безопасность приложений. Уязвимости переполнения кучи. Механизмы защиты в современных операционных систем. ASLR, защита стека. Методы обхода.
  8. (24.10) Безопасность приложений. Secure Development Life Cycle ч. 1
  9. (31.10) Безопасность приложений. Secure Development Life Cycle ч. 2
  10. (7.11) Безопасность операционных систем.
  11. (14.11) Криптография. Введение и история
  12. (21.11) Криптография. Симметричные шифры и атаки на них.
  13. (28.11) Криптография, Асимметричные шифры и атаки на них.
  14. (5.12) Криптография. Приложения - PKI, WoT, Блокчейн.
  15. (12.12) Криптография. Пост-квантовая криптография.
  16. (19.12) Заключительная лекция.

Семинары:

  1. (12.09) Уязвимости мобильных приложений ч. 1

ПО, которое необходимо скачать/установить к семинару (всё работает под Windows/Mac Os):

Обязательно:

1. Эмулятор android:

   Установить virtualbox (VirtualBox 5.1.26 platform packages): https://www.virtualbox.org/wiki/Downloads
   Установить genymotion for fun: https://www.genymotion.com/fun-zone/
   Создать учётную запись на https://www.genymotion.com
   Запустить genymotion. Выбрать тип использования “For personal use”
   Нажать + (Add new virtual device)
   Зарегистрироваться с использованием созданной на шаге 3 учётной записи
   Выбрать параметры виртуального девайса:
   Android version – 6.0.0
   Device model – Custom Phone
   Нажать “Next” и скачать образ выбранного виртуального девайса
   Запустить образ виртуального девайса

2. Установить Burp Suite Free Edition: https://portswigger.net/burp/freedownload

2. Скачать dex2jar: https://github.com/pxb1988/dex2jar/releases/download/2.0/dex-tools-2.0.zip

3. Скачать JD-GUI: http://jd.benow.ca/

4. Установить SQlite browser: http://sqlitebrowser.org/

5. Скачать уязвимое приложения для тестов: http://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz

Желательно:

   Установить drozer : https://labs.mwrinfosecurity.com/tools/drozer/ (при установке антивирус может среагировать на некоторые модули - надо добавить их в исключения)
          1.1 Скачать и установить  Java SE Development Kit 8u144
          1.2 Открыть командную строку. Перейти в каталог, куда установился drozer. Ввести команду drozer console (или, в случае использования windows, команду drozer.bat console).  Проверить наличие ошибки “Cannot find java”. 
          Если ошибки нет, то всё хорошо.
          1.3 Если есть ошибка “Cannot find java”, то вы скорее всего работаете под windows. В таком случае необходимо создать файл .drozer_config (без расширения .txt) в домашнем каталоге и прописать туда путь к java.exe.
           Содержимое файла .drozer_config должно быть, например, таким:
                 [executables]
                 java = C:\Program Files\Java\jdk1.8.0_144\bin\java.exe            
          После создания конфигурационного файла снова ввести команду drozer.bat console. Ошибка “Cannot find java” должна исчезнуть.
          Подробнее см. первую запись https://github.com/mwrlabs/drozer/wiki/FAQ)         
          1.4 Скачать agent.apk : https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk
          1.5 Скачать sieve.apk : https://github.com/mwrlabs/drozer/releases/download/2.3.4/sieve.apk
  1. (19.09) Уязвимости мобильных приложений ч. 2
  2. (26.09) Веб-уязвимости. Обзор, инструменты.
  3. (03.10) Веб-уязвимости. XSS.
  4. (10.10) Веб-уязвимости. SQLi.
  5. (17.10) Веб-уязвимости. XXE, прочее интересное.
  6. (24.10) Бинарные программы. Инструменты.
  7. (7.11) Бинарные программы. Обнаружение уязвимостей и эксплуатация.
  8. (14.11) Уязвимости в бинарных программах. Advanced.
  9. (21.11) Безопасная разработка.
  10. (28.11) Механизмы безопасности операционных систем.
  11. (5.12) Атаки на блочные шифры. CBC.
  12. (12.12) Атаки на RSA.

Материалы лекций

Лекционные материалы публикуются по мере продвижения по курсу.


Практические задания

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

Общее

Итоговый тест

Оценки

Расчет оценки

Вклад в оценку:

  • Практические задания (4 штуки) - 80%, для зачета обязательно нужно выполнить все задания
  • Итоговый тест (на экзамене) - 20%

Литература

Основная литература:

  • Michał Zalewski. The Tangled Web: A Guide to Securing Modern Web Applications.
  • Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte. The Shellcoder's Handbook: Discovering and Exploiting Security Holes.
  • Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook: Detecting and Exploiting Security Flaws.
  • Christopher Swenson, Modern Cryptanalysis: Techniques for Advanced Code Breaking.
  • Æleen Frisch. Essential system administration.

Дополнительная литература:

Контакты

  • Почта: gamajun@gmail.com, dgamaunov@hse.ru
  • Tg: @jamadharma