intelowlproject / IntelOwl

IntelOwl: manage your Threat Intelligence at scale
https://intelowlproject.github.io
GNU Affero General Public License v3.0
3.85k stars 440 forks source link

added nvd_cve analyzer closes (#2245) #2560

Closed spoiicy closed 1 week ago

spoiicy commented 2 weeks ago

closes #2245

Description

Added NIST CVE analyzer which fetches the details of supplied CVE id.

Type of change

Please delete options that are not relevant.

Checklist

Important Rules

Screenshot

Screenshot 2024-11-01 at 4 19 12 PM

JSON Report

job#16_report.json

spoiicy commented 2 weeks ago

@mlodic I've updated the Usage.md with the NIST CVE analyzer details. https://github.com/intelowlproject/docs/pull/10

spoiicy commented 2 weeks ago

considering that only CVE numbers are accepted, I would add a check in the code about the correctness of the CVE (a regex). Could you add it?

Sure, why not. I'll add it promptly.

spoiicy commented 1 week ago

@mlodic should I add a testcase of valid CVE since for generic analyzers observable_name is set to test@intelowl.com or should I create a validate_cve_format() function and monkeypatch it? what do you suggest

spoiicy commented 1 week ago

can you please pull from develop and update the migration numbers. This can happen while other people are working on the project and their PR are merged earlier.

About your question: it would be great if you could add a new test for this analyzer only and with the correct and incorrect input + yes, use a validate_cve_format function and patch it to have the "classic" test working

Could you let me know if there is any information on where to add the tests, how the tests function. I'd gone through the documentation but there was little info regarding this. This would help me in creating the tests for this analyzer.

mlodic commented 1 week ago

to create a new specific test you can copy how was done for the recent file analyzers tests that were added here. You can create a new folder observable_analyzers and add your specific test for that analyzer.

About the "classic" tests: in test_classes.py you can find some tests that are meant to automatically test every new analyzer without having to write manually basic tests for each new added analyzers. For this case, we should add an exception cause the tests are not passing. The easiest thing would be to check in the analyer code whether the code is running during tests (you can do this by check the setting STAGE) and, in that case, avoiding the CVE format check you just added. This is a trick but considering that you are already adding new custom tests is not a problem. What do you think about?

spoiicy commented 1 week ago

to create a new specific test you can copy how was done for the recent file analyzers tests that were added here. You can create a new folder observable_analyzers and add your specific test for that analyzer.

About the "classic" tests: in test_classes.py you can find some tests that are meant to automatically test every new analyzer without having to write manually basic tests for each new added analyzers. For this case, we should add an exception cause the tests are not passing. The easiest thing would be to check in the analyer code whether the code is running during tests (you can do this by check the setting STAGE) and, in that case, avoiding the CVE format check you just added. This is a trick but considering that you are already adding new custom tests is not a problem. What do you think about?

Though skipping the check would reduce my work but I think I should go with adding the tests since that will be helpful in future as well. I'll try to understand how the tests are written and will understand how they are working and then will implement them. I hope that works and we are not over-engineering this. ⊂(◉‿◉)つ

spoiicy commented 1 week ago

@mlodic hope this is sufficient, let me know in case you want any changes to be made. :)

mlodic commented 1 week ago

great! merged!