КС:2015:Проект:FileIntegrity — различия между версиями
Salagaev (обсуждение | вклад) (Новая страница: «== Что это за проект == === Введение === Системы контроля целостности необходимы для обнаруж…») |
Salagaev (обсуждение | вклад) м |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 2: | Строка 2: | ||
=== Введение === | === Введение === | ||
− | Системы контроля целостности необходимы для обнаружения | + | Системы контроля целостности необходимы для обнаружения неавторизованных изменений. |
− | изменений. | + | В данном случае предлагается разработать систему контроля целостности файлов, находящихся в файловой системе. |
− | В данном случае | + | |
− | находящихся в файловой системе. | + | |
=== Что требуется === | === Что требуется === | ||
− | Написать программу , которая будет формировать базу с контрольными суммами | + | Написать программу , которая будет формировать базу с контрольными суммами файлов, находящихся по заданным путям, и проверять, что контрольные суммы |
− | файлов находящихся по заданным путям и проверять, что контрольные суммы | + | |
файлов не изменились. | файлов не изменились. | ||
== Чему вы научитесь (помимо разработки очередного велосипеда) == | == Чему вы научитесь (помимо разработки очередного велосипеда) == | ||
− | 1. Работе с файлами | + | 1. Работе с файлами. |
− | 2. Основам параллельного программирования | + | 2. Основам параллельного программирования. |
− | 3. Основам программирования под UNIX (GNU/Linux) | + | 3. Основам программирования под UNIX (GNU/Linux). |
− | 4. Напишите модуль ядра Linux | + | 4. Напишите модуль ядра Linux. |
== Начальные требования == | == Начальные требования == | ||
Строка 27: | Строка 24: | ||
== Критерии оценивания == | == Критерии оценивания == | ||
− | === | + | === Первая контрольная точка (24 октября 2015 г.) === |
+ | |||
+ | Необходимо иметь репозиторий с проектом, в который приглашен ментор. В | ||
+ | репозитории должно быть: | ||
+ | |||
+ | * Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано самостоятельно, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать. | ||
+ | * Реализованы как минимум следующие функции: подсчет контрольной суммы файла по заданному пути, сохранение результата, проверка контрольной суммы | ||
+ | * Проектный файл CMakeLists.txt | ||
+ | |||
+ | === Вторая контрольная точка (21 ноября 2015 г.) === | ||
Утилита формирует базу контрольных сумм файлов и отвечает при передачи ей пути | Утилита формирует базу контрольных сумм файлов и отвечает при передачи ей пути | ||
− | файла: есть или нет этот файл в базе и соответствует ли контрольная сумма. | + | файла: есть или нет этот файл в базе, и соответствует ли контрольная сумма. |
=== Итоговая оценка === | === Итоговая оценка === | ||
− | * '''4 балла'''. Требования на зачет в первом модуле и дополнительно реализованы | + | * '''4 балла'''. Требования на зачет в первом модуле и дополнительно реализованы возможности: добавления в базу новых файлов, обновлений контрольных сумм старых и проверка по всей базе. |
− | возможности: добавления в базу новых файлов, обновлений контрольных сумм | + | * '''6 баллов'''. Программа реализована в виде демона, который осуществляет проверку по заданному расписанию с записью результатов в лог. |
− | и проверка по | + | * '''8 баллов'''. Реализован модуль ядра, который перехватывает открытие файла на запись с последующей проверкой по его закрытию контрольной суммы. |
− | * '''6 баллов'''. Программа реализована в виде демона, который осуществляет | + | * '''+1 балл'''. Уведомление по сети (email, jabber и т.п.). |
− | проверку по заданному расписанию с записью результатов в лог. | + | * '''+1 балл'''. Поддержка регулярного выражения в путях. |
− | * '''8 баллов'''. Реализован модуль ядра, который перехватывает открытие файла | + | |
− | на запись с последующей проверкой по его закрытию контрольной суммы. | + | |
− | * '''+1 балл'''. Уведомление по сети (email, jabber и | + | |
− | * '''+1 балл'''. | + | |
* '''+2 балла'''. Перехватывание манипуляций с файлом. | * '''+2 балла'''. Перехватывание манипуляций с файлом. | ||
* '''+2 балла'''. Контроль за атрибутами файла. | * '''+2 балла'''. Контроль за атрибутами файла. | ||
* '''+2 балла'''. Многопоточный демон. | * '''+2 балла'''. Многопоточный демон. |
Текущая версия на 15:39, 13 ноября 2015
Содержание
Что это за проект
Введение
Системы контроля целостности необходимы для обнаружения неавторизованных изменений. В данном случае предлагается разработать систему контроля целостности файлов, находящихся в файловой системе.
Что требуется
Написать программу , которая будет формировать базу с контрольными суммами файлов, находящихся по заданным путям, и проверять, что контрольные суммы файлов не изменились.
Чему вы научитесь (помимо разработки очередного велосипеда)
1. Работе с файлами.
2. Основам параллельного программирования.
3. Основам программирования под UNIX (GNU/Linux).
4. Напишите модуль ядра Linux.
Начальные требования
1. Умение разрабатывать программы на Cи или C++
Критерии оценивания
Первая контрольная точка (24 октября 2015 г.)
Необходимо иметь репозиторий с проектом, в который приглашен ментор. В репозитории должно быть:
- Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано самостоятельно, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.
- Реализованы как минимум следующие функции: подсчет контрольной суммы файла по заданному пути, сохранение результата, проверка контрольной суммы
- Проектный файл CMakeLists.txt
Вторая контрольная точка (21 ноября 2015 г.)
Утилита формирует базу контрольных сумм файлов и отвечает при передачи ей пути файла: есть или нет этот файл в базе, и соответствует ли контрольная сумма.
Итоговая оценка
- 4 балла. Требования на зачет в первом модуле и дополнительно реализованы возможности: добавления в базу новых файлов, обновлений контрольных сумм старых и проверка по всей базе.
- 6 баллов. Программа реализована в виде демона, который осуществляет проверку по заданному расписанию с записью результатов в лог.
- 8 баллов. Реализован модуль ядра, который перехватывает открытие файла на запись с последующей проверкой по его закрытию контрольной суммы.
- +1 балл. Уведомление по сети (email, jabber и т.п.).
- +1 балл. Поддержка регулярного выражения в путях.
- +2 балла. Перехватывание манипуляций с файлом.
- +2 балла. Контроль за атрибутами файла.
- +2 балла. Многопоточный демон.