Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Web Techonology Identifier Module #1561

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

kunalsz
Copy link

@kunalsz kunalsz commented Feb 28, 2025

In reference to issue #1541

Idea

  • The idea to implement this was done was inspired by the famous browser extension Wappalyzer
  • Using regex patterns for headers,cookies,meta tags,urls one can "guess" the service being used and possibly the version too.

Changes made

  • A new module WebtechIdentifier has been added,working with the help of regex patterns stored in artemis/modules/data/web_tech_identifier_data.json
  • docker-compose.yaml has been updated

Work Remaining

  • Due to system limitations I am not able to run the tests as the process is very resource intensive when running all the containers and tests.If you could tell me how to just run a specific test. Here test/modules/test_web_tech_identifier.py
  • Based upon your views I'll add a lot more services to artemis/modules/data/web_tech_identifier_data.json
  • There's a linting issue on my side, I am attaching the pre-commit log hereby
    pre-commit.log

@kazet Looking forward to your insights !

@kazet
Copy link
Member

kazet commented Mar 2, 2025

I think the biggest issue is that there are thousands of possible technologies and writing detection signatures for all of them would be a waste of time. What do you think of using an existing detector or an existing signature database? Be mindful of the license though ;)

To run one test, you might replace the python -m unittest discover test.modules command in docker-compose.test.yaml with an invocation of a specific test. This will start all the helper containers though so that wouldn't save you a lot of resources. Do you have an access e.g. to a cloud VPS where you can start it?

@kunalsz
Copy link
Author

kunalsz commented Mar 2, 2025

@kazet All the patterns are available for 1000s of technologies here . There would be no issue in implementing all of them.
No I don't have access to a VPS.

@kazet
Copy link
Member

kazet commented Mar 2, 2025

The only issue I have with that repository is that it's not updated for very long. Is there a similar repository that keeps getting updates?

@kunalsz
Copy link
Author

kunalsz commented Mar 3, 2025

@kazet The repo isn't getting update but I don't think this affects the signatures used to detect technologies. I can add more technologies to test if they work or not.

@kazet
Copy link
Member

kazet commented Mar 3, 2025

The fact that it's not getting updates means that it will be us who need to update it if a new technology appears ;) I strongly prefer finding another one, when there is somebody else adding signatures for each new PHP backend framework

@kunalsz
Copy link
Author

kunalsz commented Mar 3, 2025

@kazet I get your point. I'll see if I can find something which is regularly updated.

@kazet
Copy link
Member

kazet commented Mar 3, 2025

which one would you choose?

@kunalsz
Copy link
Author

kunalsz commented Mar 4, 2025

@kazet https://github.com/enthec/webappanalyzer/tree/main/src/technologies this one would be the best,the project aims to maintain the technologies.

@kazet
Copy link
Member

kazet commented Mar 5, 2025

It's nice indeed - the only problem is that it's GPL-licensed and the GPL license is incompatible with Artemis core license (BSD). Do you have such signature repo that is MIT- or BSD-licensed?

If you have only GPL-licensed ones, we'd need to move the web_tech_identifier module to Artemis-modules-extra, which is a separate repository so the license requirements can be relaxed, but I think it'd be better to have such a module in core.

@kunalsz
Copy link
Author

kunalsz commented Mar 5, 2025

@kazet I will ask the maintainers of that project if they could update their license or I'll try to find another resource

@kazet
Copy link
Member

kazet commented Mar 6, 2025

This is a good idea, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants