# Занятие 1. Прошивки и с чем их едят.
###### tags: `Analysis of system app and Virology`

#### Материалы и описание для самостоятельного изучения:
- [Учебник по С++](https://disk.yandex.ru/i/5eZovKHYggKZaw)
- [Учебник по Java](https://disk.yandex.ru/d/mtghETjLKE5a3A)
- [Учебник по ассемблеру](https://disk.yandex.ru/i/9-4IlVNlEgzWfQ)
- [Учебник по основам сетей](https://disk.yandex.ru/i/AbUsH8SQR1FZNA)
## Введение о работе с прошивками
Разные роутеры используют разные OS Unix. Самыми популярными являются RedHat и Arch.
## Типы прошивок
Аппаратная прошивка — BIOS. Находится в ПЗУ (ROM), которое записывается в момент создания железки. ПЗУ от РПЗУ отличается тем, что РПЗУ возможно перезаписать, ПЗУ только на заводе записывается (например, у микроволновки ПЗУ, у коммутатора — РПЗУ). Чтобы получить доступ к РПЗУ, нужно ввести op-code. После этого его можно перезаписать, ПЗУ нельзя никак.
Программная прошивка — OS. Находится в ОЗУ (RAM), к которому имеет доступ пользователь. На нее ставят сервисы apache или nginx. Обычно ищут уязвимости в веб сервисах, а не в прошивке (посмотреть про routersploit)
Opcode — Это определенный набор действий, который по результату выполнения определенного прерывания, способен выдать доступ к РПЗУ.
*Например:*
```
int 232 ; вызов
mov ax, 1
mov dx, 0x0A ; Набор будет случайным. Если во всех регистрах правильный
mov cs, 1 ; набор - предоставляет доступ
int 232 ; снова вызов
```
*В данном случае были приведены случайные значения, но примерно аналогично выглядит на определенных версиях BIOS*
## Атаки на прошивки
Про программную прошивку. Запуск компьютера: bios/uefi → mbr(есть более новые средства) → vbr (ищет ipm) → ipm (переводит ос из real в protected mode)
Про аппаратную прошивку. РПЗУ имеет контейнер R (reserve), после того как в R записана новая BIOS полностью (в случае обновления его), ставится флаг, что все готово и в итоге R заменяет РПЗУ. После обмена R содержит прошлую прошивку с возможностью вернуться на нее. Атаковать можно R вместо РПЗУ. R также содержит свой opcode. Но обычно все-таки атакуют ее

Проблема чаще всего не в прошивках а в службах !
## Чем будем заниматься далее?
#### Реверс-инженеринг
#### Низкоуровневая разработка
#### Анализ архитектур
## Домашнее задание
#### Реверс и анализ исходного кода Avaya Inc.
##### Задача:
> Научиться анализировать прошивки сетевого оборудования, ознакомиться с "лайфхаками" при анализе псевдокода.
##### Ссылка на бинарь https://disk.yandex.ru/d/PScDsBM27G5OoQ
##### Цель и задача практики нацелена на:
> Получение знаний в области анализа программного обеспечения. Благодаря полученным знаниям об архитектуре прошивок, появится возможность самостоятельно реализовывать собственные версии прошивок и систем безопасности для IOT устройств.
## Ответы на вопросы
- Как будут проверяться работы?
> В индивидуальном порядке составляется отчет по работе. Преподаватель будет беседовать с каждым по отчету. Отчет может быть составлен в свободной форме, главное - в doc/pdf формате.
- Что за это будет?
> Для тех кто успешно выполняет домашние работы, после беседы с преподавателем может быть предложен оффер на работу.
- Как наверстать программу?
> Посмотреть в альбомах группы вк, видео лекций и практик для второй группы (dungeon masters). Посмотреть видео лекций технопарка Альтаир, что есть в беседе.
>
> К следующему занятию стоит повторить:
>1. Основы сети
>2. Принципы работы загрузки систем OS Unix/Windows
>3. Cisco CLI синтаксис и Linux CLI синтаксис команд
- Опыт преподавателя в ИТ/ИБ
>
- Контакты преподавателя
>