Цель: создание firewall'а под windows. Начальный функционал небольшой: мониторинг сети, блокирование неблагонадёжных программ, сетевых атак, отчётность. Потом уже всякие спам-фильтры и т.п. Функционал планируется писать на С++, интерфейс на C#.
Команда разработчиков будет состоять ориентировочно из 2-х человек средней квалифкации (опыт прикладного программирования есть, но не в данной области). Они же будут и дизайнерами, и тестировщиками и др.
Интересен вопрос по планированию времени разработки. Сколько человеко-дней это дело может примерно занять.
Здравствуйте, Nuzhny, Вы писали:
N>День добрый!
N>Цель: создание firewall'а под windows. Начальный функционал небольшой: мониторинг сети, блокирование неблагонадёжных программ, сетевых атак, отчётность. Потом уже всякие спам-фильтры и т.п. Функционал планируется писать на С++, интерфейс на C#.
N>Команда разработчиков будет состоять ориентировочно из 2-х человек средней квалифкации (опыт прикладного программирования есть, но не в данной области). Они же будут и дизайнерами, и тестировщиками и др.
N>Интересен вопрос по планированию времени разработки. Сколько человеко-дней это дело может примерно занять.
ТЗ в студию!
Перед тем, как улучшиться, ситуация ухудшается. (из законов Мерфи)
А вообще есть человеко-часы, а не человеко-дни. В дне сколько рабочих часов? 8? 6? 14? это раз. И какой смысл разделения языков программирования?
З.Ы. Примерные прикидки:
начальное проектирование — 5-10 человеко-часов
мониторинг сети — 2-3 человеко-часа
блокирование неблагонадежных программ — 4-6 человеко-часов
блокирование известных серевых атак (без создания пополняемой БД атак) — от 10 человеко-часов (поиск информации)
отчетность — 1-2 человеко-часа
Это на основании моих личных знаний и опыта, без написания драйверов, простенький user-mode файервольчик. На серьёзный проект не катит, но как пример можно
Перед тем, как улучшиться, ситуация ухудшается. (из законов Мерфи)
N>Команда разработчиков будет состоять ориентировочно из 2-х человек средней квалифкации (опыт прикладного программирования есть, но не в данной области). Они же будут и дизайнерами, и тестировщиками и др.
Провал.
Ну или минимум 1 человеко-месяц на изучение кернела перед тем, как начать писать самый первый код.
Что именно из 2 случаев случится — зависит от интеллекта (а не скиллзов) разработчиков.
Это не прикладное программирование, а системное.
Провал будет — если будет — скорее всего в виде "вечно тянутся тяжелые баги, валится, клиенты недовольны, а мы с ними ничего сделать не можем, и количество их только растет".
Возможно, что до клиентов и не дойдет. Валится будет так часто еще в QA, что о клиентах не пойдет и речи, а девелоперы не смогут с этим справиться.
N>Цель: создание firewall'а под windows. Начальный функционал небольшой: мониторинг сети, блокирование неблагонадёжных программ, сетевых атак, отчётность. Потом уже всякие спам-фильтры и т.п. Функционал планируется писать на С++, интерфейс на C#.
N>Команда разработчиков будет состоять ориентировочно из 2-х человек средней квалифкации (опыт прикладного программирования есть, но не в данной области). Они же будут и дизайнерами, и тестировщиками и др.
N>Интересен вопрос по планированию времени разработки. Сколько человеко-дней это дело может примерно занять.
Если делать через драйвер, то времени нужно тьма, т.к. придется изучать принципы работы в kernel-mode, ботать DDK, начинать писать "драйвер", смотреть, отлаживать, наполнять. Да у вас только неделя уйдет на то, чтобы настроить нужное окружение (найти DDK, softice, поставить, настроить возможность отладки... все это лучше делать в виртуальной машине, поэтому надо будет настроить еще и ее и чтобы отладка в ней работала). Книжек хороших по разработке в режиме ядра очень мало, их надо будет еще найти. К тому же ту часть, которая в ядре будет функционировать (драйвер) можно реализовать на разных уровнях, там 3 или 4 совершенно разных варианта, нужно изучить их все и понять, какой из них будет предпочтительнее. И еще, для отладки в режиме ядра очень хорошо бы знать ассемблер. Короче, человеко дней это займет — уйму. Недаром тот же agnitum разрабатывают уже очень долго, а он все еще кривой.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Macr0s, Вы писали:
M>>ТЗ в студию!
N>Да нет никакого ТЗ ещё. Сидим и думаем: что да как. Это что-то вроде стартапа при отсутствии начального финансирования и наличии энтузиазма
А что рынок стонет от отсутствия firewall'а для винды?
Даже если напишите, кому он нужен-то будет?
Многие и рады были бы испытать когнитивный диссонанс, но нечем.
Здравствуйте, Nuzhny, Вы писали:
N>День добрый!
N>Цель: создание firewall'а под windows. Начальный функционал небольшой: мониторинг сети, блокирование неблагонадёжных программ, сетевых атак, отчётность. Потом уже всякие спам-фильтры и т.п. Функционал планируется писать на С++, интерфейс на C#.
N>Команда разработчиков будет состоять ориентировочно из 2-х человек средней квалифкации (опыт прикладного программирования есть, но не в данной области). Они же будут и дизайнерами, и тестировщиками и др.
N>Интересен вопрос по планированию времени разработки. Сколько человеко-дней это дело может примерно занять.
Если команда состоит из "прикладных программистов средней квалификации", то будь их хоть 2, хоть 20 -- с разработкой firewall'а они не справятся никогда. Сначала надо обучить их специфике задачи и повысить квалификацию.
P>Если делать через драйвер, то времени нужно тьма, т.к. придется изучать принципы работы в kernel-mode, ботать DDK, начинать писать "драйвер", смотреть, отлаживать, наполнять. Да у вас только неделя уйдет на то, чтобы настроить нужное окружение (найти DDK, softice,
За день все ставится. Софтайс — устарел и нафиг не нужен, нужен WinDbg, который, кстати, халявный. Еще день — на изучение WinDbg, где очень богатая командная строка.
Изучение концепций — вот тут да, тут недели две у начинающего минимум уйдет, если он очень толков. Пару книжек еще хорошо бы прочесть. По NDIS вроде и книжки нет.
Можно, конечно, не изучать — так ляпать, начав с примера PASSTHRU. А потом прийти на форума "люди-добрые-помогите-не-работает!".
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Что именно из 2 случаев случится — зависит от интеллекта (а не скиллзов) разработчиков.
MSS>Это не прикладное программирование, а системное.
Не могли бы объяснить почему в системном ПО результат больше зависит от интеллекта, а не скилзов?
В принципе я с этим согласен, но обычно не могу найти веских доводов.
MSS>За день все ставится. Софтайс — устарел и нафиг не нужен, нужен WinDbg, который, кстати, халявный. Еще день — на изучение WinDbg, где очень богатая командная строка.
Можно поподробнее про устаревший софтайс? Для общего развития А то пару лет назад я про это не слышал еще... ВинДБГ меня тогда не порадовал.
Вообще, говоря софтайс, я имел в виду CompuWare DriverStudio, в состав которого и софтайс входит.
MSS>Изучение концепций — вот тут да, тут недели две у начинающего минимум уйдет, если он очень толков. Пару книжек еще хорошо бы прочесть. По NDIS вроде и книжки нет.
По NDIS есть DDK :D Но будет мягко говоря "тяжеловато"
Здравствуйте, Predicate, Вы писали:
MSS>>За день все ставится. Софтайс — устарел и нафиг не нужен, нужен WinDbg, который, кстати, халявный. Еще день — на изучение WinDbg, где очень богатая командная строка.
P>Можно поподробнее про устаревший софтайс? Для общего развития А то пару лет назад я про это не слышал еще... ВинДБГ меня тогда не порадовал. P>Вообще, говоря софтайс, я имел в виду CompuWare DriverStudio, в состав которого и софтайс входит.
СофтАйс компанией КомпуВаре более не выпускается. Совсем не выпускается. RIP SoftIce.
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.