exitmap icon indicating copy to clipboard operation
exitmap copied to clipboard

added module to use Tor Browser for scanning. Closes #46.

Open localshift opened this issue 8 years ago • 4 comments

Contains a new module advancedBinaryIntegrity which checks for binary integrity by downloading windows installers from cnet.com and filehippo.com over Tor Browser. Changes to eventhandler.py were necessary to allow circuits to be attached automatically, so external software (ie. the Tor Browser) can use them. Yes, this breaks parallelization of scanning for this module, but you can only have one Tor Browser instance at a time anyway. Installation and usage is documented in Readme.md, an additional file mimeTypes.rdf needs to be copied over the one supplied with the Tor Browser in order to make Windows installers auto-download. The other files are a modified version of the marionette driver, which allows to interface the Tor Browser.

Licensing: you can include and use this in your existing software as if you wrote it yourself, no attribution needed, as long as the software stays under GPLv3+.

localshift avatar Sep 26 '17 09:09 localshift

I've been long planning to fix #46 using the tor-browser-selenium library. This would abstract away all the Marionette interface code included in this PR.

Is there an advantage of having all these Marionette related code in exitmap?

gunesacar avatar Sep 26 '17 21:09 gunesacar

Marionette is the successor to selenium and recommended by Mozilla to be used instead iirc. The only reason why I needed to include the Marionette code is because of two changed lines to allow external shutdown requests to the browser.

As I don't think the Marionette project would include my change in their code, as they explicitly did the contrary, I didn't bother trying a pull request there.

If you don't want to have the Marionette-Python code in this repo, I could change the module so it works with the original Marionette code. The only difference would be that it doesn't cleanly shutdown the Tor Browser anymore, and instead would only use the python-psutil equivalent of killall -9 firefox to stop the Tor Browser after a finished check.

localshift avatar Sep 27 '17 08:09 localshift

Marionette has better integration with the browser chrome and used in the Firefox test suite. But it is not an alternative or successor to Selenium, it's rather Mozilla's automation tool/protocol that can also work with Selenium WebDriver: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette

geckodriver is the successor of FirefoxDriver (Firefox version of WebDriver), and would be a more appropriate tool for the automation tasks need by exitmap.

gunesacar avatar Sep 27 '17 20:09 gunesacar

Okay, I have updated my code so the custom marionette code isn't needed anymore. marionette_driver can now used as a normal python dependency.

localshift avatar Sep 28 '17 21:09 localshift