Replies: 12 comments 3 replies
-
I found a very interesting article on how to build github CI workflows / actions with codeqL and Bandit to analyse python repositories automatically as far as possible. Here is also an example repo with already built in actions to see how it works: |
Beta Was this translation helpful? Give feedback.
-
Hello, |
Beta Was this translation helpful? Give feedback.
-
my idea is to display "reviewed" or "not reviewed", not more than that. And there should be a documentation which explains what this status means, either in the user guide or on the corporate environment website of NV Access.
So the status "reviewed" is a combination of 1 and 3 or 2 and 3. This would improve the current situation at least. |
Beta Was this translation helpful? Give feedback.
-
I support, for now:
From my side, I've just activated CodeQL from clipContentsDesigner settings, as well as ability to report vulnerabilities privately from GitHub, in addition to using my email address. I'll do this for all my add-ons in the next days.
|
Beta Was this translation helpful? Give feedback.
-
Wow this is already a quick win. 😍 Noelia did you have a look at the list of tools for automatic analysis? There might be something that complements codeqL and maybe this improves the checks.Maybe we can.create a github action for the addon submission globally so that the security checks run automatically for every addon before pushing every update to the store.Von meinem iPhone gesendetAm 29.02.2024 um 21:08 schrieb Noelia Ruiz Martínez ***@***.***>:
I support, for now:
Encourage users via in process blog and mailing lists and other channels to provide reviews of the add-ons in the add-on store to build up trusted environment. @Qchristensen may have ideas about if this is or not feasible and why.
From my side, I've just activated CodeQL from clipContentsDesigner settings, as well as ability to report vulnerabilities privately from GitHub, in addition to using my email address. I'll do this for all my add-ons in the next days.
Other points may require more ellaboration, for example:
When an add-on is updated may change drastically, and reviews may have been performed before the update.
One of the testing principles is that tests can detect failures, but not absence of errors, so we should be careful avoiding to provide a false perception of security.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I really agree now with this proposal, the comment from @nvdaes makes me ask a question, would the security check be implemented on the add-on store repository or on the add-on repository? |
Beta Was this translation helpful? Give feedback.
-
This seems like a reasonable start point. I though have some questions and comments:
|
Beta Was this translation helpful? Give feedback.
-
The sort of add on that would possibly give rise to concern would be anything that involves calling another on line system, like link shorteeners and AI interfaces etc. How could one be sure that those sites don't suddenly introduce data gathering and tracking?
Brian
…--
***@***.***
Sent via blueyonder.(Virgin media)
Please address personal E-mail to:-
***@***.***, putting 'Brian Gaff'
in the display name field.
----- Original Message -----
From: Nael Sayegh
To: nvaccess/nvda
Cc: Subscribed
Sent: Thursday, February 29, 2024 7:05 PM
Subject: Re: [nvaccess/nvda] Improve security perception for NVDA add-ons (Discussion #16241)
Hello,
I tend to agree with your proposal @Adriani90 .
However, we should include in the documentation a list of permissions that need to be added to our manifest, so that the developer can really think about what needs to be mentioned without forgetting any details.
I am less in agreement with the idea of mentioning in the add-on store whether the add-on has been evaluated, because if the add-on is of no interest to any evaluator and since there are not many, the add-on will be displayed as potentially dangerous even though it may not be.
For example, if we take an add-on like "everything", I think very few evaluators would be motivated to evaluate it and it could remain as potentially dangerous for a long time.
However, it all depends on the mention displayed if the add-on is not reviewed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
This could be done by introducing a validation whether an add-on is transparent in its permissions or not in the compatibility checks. If the author didn't document the actions / permissions the add-on uses in its manifest, then the add-on is not transparent and is incompatible with NVDA's standards. If the permissions are documented properly in the manifest and the add-on passed all compatibility checks, the permissions could be displayed in a installation / activation dialog to inform the user. |
Beta Was this translation helpful? Give feedback.
-
That's right. And currently there are no fully automated solution to check whether an action is sensitive or not. But here is a very interesting article on how security manager checks are done in Java, maybe this can inspire us as well:
They are much more than that, most of them are really static analysis tools that also detect external injections of different kinds and generate recommendations or warnings. Most of them have also github integrations. See for example this tool: |
Beta Was this translation helpful? Give feedback.
-
There are also tools for permission automated checking, with permission databases in background, and some of them also seem to be able to generate a permission documentation for a code but I am not sure how good they are. |
Beta Was this translation helpful? Give feedback.
-
I think there has been some good discussion here.
I'm not sure this is something we can comment on other than general warning of trusting the publisher / source.
I would encourage opening an issue in nvaccess/addon-datastore
I think from other discussion here this may not be the best UX. Code scanning is a good smoke test, something that reduces risk, but I don't think we should encourage people to rely on it.
This is something we could do - @Qchristensen thoughts?
A restricted add-on API is something we would like to move slowly towards, but this will be a huge change to add-on infrastructure |
Beta Was this translation helpful? Give feedback.
-
Discussion started in #16235. That proposal is not acceptable and not really supported by the community, so following proposal from my side. Please add your ideas as well.
following could be done to improve the security perception:
here is another list of alternative tools which could help in automating security checks in the add-on submission repository:
https://owasp.org/www-community/Source_Code_Analysis_Tools
(i.e. this add-on is using an external API to process data, or this add-on saves a log file in temp\add-on-name which contains private data such as what you type on your keyboard. By installing this add-on, you allow the add-on to use the saving and processing permissions on your system. Are you sure you want to install this add-on?
yes button; no button).
Additional details
Here is an overview of risks especially for non-malitious apps:
https://www.linkedin.com/pulse/how-ensure-mobile-app-security-workplace-prateek-panda
I would say the first 3 points can be quite easily covered in a review without much effort, with a bit of technical knowledge.
However, the last 3 points are tricky to discover I guess if no one has professionally doing security reviews.
For mobile apps and browser extenstions at least, there are some tools where you can throw the code in and they generate a security report.
Since all our add-ons are open-source, we could think about using such a tool where python code is analysed automatically to a certain extent.
For mobile apps there is Appknox for example:
https://www.appknox.com/
For browser extensions there is the system center endpoint protection:
https://software.berkeley.edu/system-center-endpoint-protection-scep-0
and the CRxcavator where you can throw a log of the extension and it analyses it for certain security related aspects:
https://crxcavator.io/docs.html#/
In general it seems following behavior should people have before installing extensions of any kind. This could be rewritten as indications in the user guide and on the corporate environment website:
• Check out the developer’s website to see if it’s a legitimate extension and not a one-off by an unvetted source. (not really relevant for us because most add-ons are on github and still we cannot make sure people upload only trusted content on it)
• Read the description. Look for things that may be questionable, like tracking info or data sharing.
• Check out the reviews. Look for users complaining of oddities happening, speculating on their data being taken, or for anything that strikes you as odd. (this would come into force if enough users reviewed the add-ons. This could be encouraged to do via the in process blog, motivating people on the mailing list or Masterdom or Discord to give a user review etc.)
• Be picky. The more extensions installed, the bigger the attack surface you open up to attackers. Only pick the most useful and delete the ones you don’t need.
• Only install through trusted sources. While not guaranteed safe, security technicians review extensions for malicious content.
• Review permissions. Review extension permissions closely. If an extension installed suddenly requests new permissions, be wary. If you can’t find a reason for the permission change, it’s probably better to uninstall.
https://security.berkeley.edu/education-awareness/browser-extensions-how-vet-and-install-safely
Beta Was this translation helpful? Give feedback.
All reactions