Теми за Мрежова сигурност - 2 Основни критерии за оценяване: Положителни: За изчерпателност 10 т. За точност 10 т. За яснота на изложението 10 т. За яснота и точност на обосновките 10 т. За оптималност на работата 15 т. Отрицателни: За правописни и стилистични грешки: до -5 т. За фактологични грешки: до -5 т. За липса на обосновка: до -10 т. За неработещ проект: до -20 т. За изключително добри разработки преподавателите си запазват правото да дадат до 10 допълнителни точки. Проектите се предават на хартия И се изпращат по в PDF формат email на netsec-projects2004@nedyalkov.com. Самите проекти ще се публикуват на страницата на курса, заедно с оценката и кратка рецензия. Самите проекти трябва да са поне 30 000 символа (с празните символи (интервал и табулация)), написани на грамотен български език. За всеки проект трябва да се опише библиография на използваните източници. Към някои от темите има приблизителен/препоръчителен план. 1) Добавяне на диагностични възможности към популярни софтуерни продукти Да се разширят входните данни (команди, заявки) на един от изброените по-долу програмни продукти по указания начин, като се предостави възможност извършване на поне три от следните дейности: - READ fname [start [end] [unit]] четене на цял файл или на зададен фрагмент от него; незадължителните параметри start и end (цели числа) задават съответно началото и края на фрагмента, а unit (символ) задава единиците - 'l' за редове, 'c' или 'b' за символи/байтове, 'k' за килобайтове, 'm' за мегабайтове. Ако start или end започват със знак '-', позицията се пресмята от текущия край на файла. - WRITE fname start unit truncf string запис на последователност от байтове от определена позиция на файла нататък. start и unit имат същото значение като при READ, truncf е цяло число - ако е различно от нула, файлът трябва да бъде съкратен (truncated) непосредствено до края на записания низ, т.е. записаните символи да се окажат последните символи във файла. - LIST dirname извеждане на списък на файловете в дадената директория и информация за тях във формат, зависещ от операционната система и използваните библиотеки. - EPLF dirname извеждане на списък на файловете в дадената директория и информация за тях във формат EPLF, описан от Prof. Daniel J. Bernstein на . - MLST dirname извеждане на списък на файловете в дадена директория и информация за тях във формат MLST, описан на . - EXEC progname [args...] изпълнение на външна програма, като ако тя извежда данни на стандартния изход, те трябва да бъдат предадени на клиента като отговор на командата. - EXSH [program-path] изпълнение на интерактивен команден интерпретатор (command shell) (само ако е приложимо за програмата). Всички данни, постъпили от клиента в същата сесия, се предават на командния интерпретатор или на програмите, изпълнени от него, като стандартен вход; всички данни, изведени от командния интерпретатор или програмите, изпълнени от него, на стандартния изход или стандартния изход за грешка, се предават на клиента. Програми: - Sendmail SMTP server: добавяне на команда DBUG с първи параметър командата и последващи евентуално параметри на командата; пример: DBUG LIST /tmp - Microsoft Exchange 2000 или 2003 SMTP server: аналогично - BIND DNS server/resolving cache: специална обработка на заявки за записи тип 'A' за top-level domain 'dbg'. Второто ниво на hostname е командата, от третото нататък започват незадължителните параметри; пример: /tmp.list.dbg - tinydns DNS server: аналогично; - dnscache DNS resolving cache: аналогично; - Microsoft DNS server/resolving cache: аналогично - ОpenSSH SSH server: специална обработка на SSH2_MSG_IGNORE пакет, който има данни, започващи с DBUG; форматът на командата и параметрите в данните са аналогични на тези за SMTP и FTP. За 1 студент Трудност: 7/10 2) Писане на exploit Да се напише експлоит за дадения от нас софтуер, който да изпълнява определена команда на самия сървър. Софтуерът ще бъде модифициран вариант на някой от следните: arj_3.10.21 bsmtpd_2.3pl8b ethereal_0.9.4 linpopup_1.2.0 playmidi_2.4 sword_1.5.3 typespeed_0.4.1 xpcd_2.08 xpdf_1.00 zip_2.30 (и други) Достъпни са от http://vasil.ludost.net/netsec/exploitable/ За 1 студент Трудност: 8/10 3) Audit на web сайтове Да се направи преглед на дадени web сайтове, и да се опишат security проблемите в тях. Самите сайтове ще се уточняват с желаещите да работят по темата. Един от пакетите ще бъде този на университета. Ето няколко възможни: dir.bg abv.bg cska.bg За 3ма студенти Трудност: 9/10 4) Audit на мрежов протокол (стандарт) Да се изследва мрежова услуга от долуизброените и да се направи анализ на стандарта/протокола който реализира. Анализа да включва: - предимства и недостатъци на протокола (стандарта). Предложения за оптимизация и повишаване нивото на сигурност. - слабости на реализиращата стандарта имплементация (услуга). Обосновка + предложени конкретни "поправки". Протоколите/услугите са по избор на студентите (след одобряване от страна на преподавателския екип). Примери - DHCP, NTP, Name Service Protocol, Telnet, SMTP, POP3. За 4ма студенти Трудност: 10/10 5) Система за предаване на информация в организация с клетъчна структура Да се направи дизайн и описание на система за предаване на информация между много различни точки, използваема в организация с клетъчна структура. Системата трябва да предоставя следните възможности: Идентификация - трябва да е възможно да се определи, че дадени съобщения са дошли от определена точка в системата, и да има защита срещу вмъкнати съобщения. Скриване - чрез стеганография трафикът на системата да не се поддава на откриване. Анонимизация - да не може да се проследи пътя на дадено съобщение. Повече информация: Клетъчна организация: http://en.wikipedia.org/wiki/Cell_structure http://tinyurl.com/3r3ag Анонимизация: http://tor.eff.org/ За 5ма студенти Трудност: 10/10