Возможно ли идентифицировать конкретное приложение путем анализа его пакетов? Если да, какие атрибуты пакетов могут помочь идентифицировать приложение однозначно? Любая помощь будет оценена по достоинству.Определить приложение на основе его пакетов
0
A
ответ
1
Этот вопрос имеет очень широкий диапазон, и если вы придумаете решение, вы должны подать заявку на патент. Вы можете получать знания приложений в зависимости от пакетов и протоколов, но правила не работают в 100% случаев. Вот некоторые соображения, которые вы должны знать (не полный список, но они могут дать вам идею):
- Основываясь на Src или Dst порта вы можете иметь информацию о том, что приложение работает в одном из двух узлов. Например, по умолчанию веб-сервер использует порты 80 или 8080 (или 443 с HTTPS). По умолчанию ssh использует порт 22. Однако приложение может быть настроено для прослушивания другого порта. Также многие различные приложения используют HTTP для связи через порты 80, 8080, 443. В последнем случае есть протокол возможностей HTTP, но вы не можете определить, какое приложение оно есть.
- Если связь не зашифрована, вы можете получить информацию об информационных пакетах. Но если связь осуществляется через SSL, например, нет способа сделать это, если вы не реализуете атаку «человек в середине».
- Если у вас есть доступ к машине, используя netstat или другой инструмент, вы можете определить приложение на основе используемых портов.
- Другой способ угадывания (это скорее угадывание, чем детерминированное), приложение - путем анализа шаблона связи.
Одним словом, на основе анализа сети вы можете угадать приложение. Тем не менее, нет способа, который может рассказать вам с 100% точностью.
Смежные вопросы
- 1. Java Q на основе пакетов
- 2. Определить процедуры внутри пакетов
- 3. Как определить, работает ли приложение на основе документов?
- 4. Как определить, установлено ли приложение на основе кода обновления
- 5. Зависимости пакетов на основе условия [debian]
- 6. Определить расширение файла на основе его имени стебля
- 7. Определить размер окна на основе его внутреннего содержимого
- 8. Как определить boundingRect() объекта QGraphicsTextItem на основе его содержимого?
- 9. Как определить размер Android на основе размеров его родителя
- 10. приложение на основе местоположения
- 11. Дженкинс Запуск заданий на основе доступных пакетов
- 12. Оптимизация проверки пакетов на основе маловероятности читеров?
- 13. Определить процесс для исходящих пакетов
- 14. Приложение на основе текста на основе Java
- 15. Приложение на основе Sim
- 16. Определить MessageBoxIcon на основе ComboBox
- 17. Определить фреймворк на основе задержки
- 18. Определить поведение на основе подкласса
- 19. хочу приложение на основе python на основе windows на android
- 20. Cordova - Определить страну пользователей на основе геолокации
- 21. Обновить приложение на основе страницы
- 22. Xcode: приложение на основе страницы
- 23. Android: приложение на основе местоположения
- 24. Java: программно определить все имена пакетов, загруженных на
- 25. Определить контекст на основе указателя инструкции
- 26. Определить валюту на основе местоположения пользователя?
- 27. Move на основе его угла
- 28. Определить направление текста на основе содержимого
- 29. Как сделать eclipse похожим на IDEA на его списки пакетов?
- 30. Как определить дополнительные зависимости для отдельных пакетов?
Возможно, вас заинтересует библиотека с глубокой инспекцией пакетов. ИМХО лучшая библиотека с открытым исходным кодом - это nDPI. В основном у него есть база данных отпечатков пальцев для каждого поддерживаемого приложения (Skype, Gmail, YouTube и т. Д.). Иногда определение приложения требует проверки нескольких пакетов в одном потоке. Другие библиотеки используют статистику (размер пакета, время и т. Д.) Для идентификации пакетов https://en.wikipedia.org/wiki/Deep_packet_inspection –