General security question about community provided edge drivers

I believe whoever is using the term “closed source” doesnt mean a swear word or any such kind. But the real issue is that the way channel drivers model is working right now is worrisome. Well, for sensible people who have some knowledge of programming or what a code execution is, they will never install a code on their system (be it ST or for that matter a windows or mac machine or mobile phones) which has not been verified and certified to be doing what the author of the code claims to be or unless it comes from a reputed company. Many, but not majority of them, people understand the kind and level of cybercrime has reached today. My intention here is not to offend most developers who are genuine, but who or how one can tell apart any malicious actor? Most people in community dont know a developer personally well enough.

So, Samsung must put in place some sort of check in place and until then it must display a warning that the code comes from unverified source and to understand risks of installing it, for those people who go on blindly installing unverified drivers without asking a single question. I have seen many people who are just tapping on links and installing drivers that are not verified just in a rush and desparation to avoid breaking their automations and device functionlities due to the Edge change coming in soon.

1 Like

Those same people will ignore any warning and click install anyway. No different to downloads from Chrome/Edge. People do not read warnings, terms and conditions or any other warning popups. Samsung can try and explain to people the warnings or concerns or no warranty for a community driver. They won’t read it, nor care.

This isn’t on Samsung. Its up to users to be responsible for what they choose to install. Its no different than blindly pasting code into the IDE, which 99% of people did.

I like this. HomeKit has this, and so will Matter. There’s a path for uncertified devices, but there is the extra warning just to act as a reminder. I agree that a lot of people, maybe most, will ignore the warnings, but I still think they’re a good idea, if only to start the conversation

2 Likes

I agree some people will anyway install ignoring any kind of warning, probably because 1) the kind of setup they have isnt that important to them and so they dont really care or 2) some people simply dont care. So, for 2nd kind of people you tell them its a deep well, they will still jump, nothing much can be done about them, they will be either forced to learn to swim or they will die. Im sure there are many people who are having a false sense of security simply since the drivers are hosted on Samsung servers and the url is from one of Samsung’s domain.

As far as terms and conditions link is concerned, yes, we both agree that no one really goes through it, that is the reason this very important piece of information should be highlighted right on the channel acceptance page. Im sure then many people will realize and understand what it means.

I’m not saying Samsung should go to every user and stop them completely from installing harmfull codes, but right now there is no warning highlighting people about potential dangers either. This is what Microsoft, Apple, Google etc does. Either they vet codes hosted on their servers or try installing from other sources they will promptly warn you about it while explaining the risks. Samsung on the other hand is just doing away with one simple link to terms and conditions that no one reads. Moreover, “Terms and Conditions” are usually used by companies to safe guard their own interests… to summarize among other formalities it says if our software breaks your system then you cannot claim a damage from us, but the point is that in this case their intention is not to break people’s system or break into their system either - people now know this and so they dont care to read it anymore. For unverified sources its completely different security scenario altogether. Their inention might be to break into people’s system and security this is what needs to be highlighted separately.

Lastly I do agree there is no system or model which is fool proof, but putting such safe guards in place and regulalry monitoring do help those people who understands are concerned about security otherwise why these big companies would spend time, resource and money knowing people will go ahead and do whatver they like anyway.

2 Likes

Appreciate your thoughts and i hear your points.

I just don’t think its that large of an issue, at least not at this point. The number of people that even do DIY home automation is miniscule compared to an ecosystem like iOS or Android. The number of people that take customization of devices needing to install their own drivers is even smaller.

Bad actors looking to wreak havok wouldn’t get much traction by writing community Edge drivers to < evil laugh > Take Over The World </ evil laugh >.

Maybe Samsung puts more warnings, maybe not. Maybe 3 more “are you sure?” “There is no warranty, these could be dangerous, are you really really sure?” buttons that must be clicked to install community drivers. I just don’t see it making much difference. The first couple times someone might notice but after that its alert fatigue and everyone blows straight thru - AND gets annoyed that it should only take 1 click instead of 4.

Number one question in restaurants - “wheres the restroom?” … even though theres a sign right above their head that says “Restroom <—”. People do - not - read.

2 Likes

Well, Im one of those who first try to find a “Restroom” sign before asking anyone, and im sure you do so too :slight_smile: That is why I landed in this discussion thread :slight_smile: at first place.

Whether its a large issue at the moment its only about individual perspective since neither of us have any data to support the stats either way. But what did changed now is that almost everyone knows that Samsung will kill Groovy and DTH by the year end and starting October they will start moving everything to Edge which is an important turning point. One of the significant changes is that in Groovy DTH code was visible even though people blindly copy pasted (the 2nd kind of people as I mentioned previously) and for people with concern its available for inspection. But in Edge everything suddenly goes in a black box! One can give various explanation for that including improved and enhanced system etc etc fair enough, but Samsung should guide us when we cannot see anything inside black box.

I see your point on alert fatigue and I do agree, but just one is enough to make those group of people aware who would want to be notified of potential risks.

Whether there are huge number of people in ecosystem or very small, whether there are more security concious people or mostly ignorant, my point is if you (a company or any entity) do something do it the right way the way any responsible entity would do.

If you scroll up this thread someone from Samsung sometime ago did mention in response that they will put in place some model or safe guards in place its only that they were then working more on system stability. This discussion started again since @Davec posted a reminder for the same. I too think with this big switch over its time for such safe guard.

3 Likes

By the way, i dont mean to sound like to be adamant to put a warning. Its just one of many things that can be done to start with without spending much time at minimum. Its upto Samsung what they think is best to put in place.

2 Likes

Ideally, I’d like to see a security setting on the hub to only allow certified drivers to be installed.

1 Like

Is there a certified concept?

Have no idea exactly what this means in terms of being able to identify certified binaries, or even if they thought to include some kind of flag for it.

1 Like

Give me my humble opinion and extending myself a bit, I think that the security in the use of community drivers and publishing the code of the drivers are two totally different things.

Regarding the safety of using community drivers:

  • When you agree to use the samsumg account and its space to share and use drivers,… you are already accepting some conditions of use and assuming some rules that each one must assume. I would bet something that 99% or more have not read those conditions of use!
  • Smarttings controls and is responsible for the drivers it certifies and therefore charges $ for it.
  • It gives freedom with its open code so that non-certified devices can be used on its platform under the responsibility of each one.
  • Everyone wants to use the devices they like best or cheapest, even if they are not certified, this is good, but it has its risks that everyone must assume or only use devices certified by smartthings.
  • The firmware installed in the hub is the guarantee that the drivers will only execute what they are allowed to do and limit the possible damages when an incorrect or corrupt driver is used intentionally or not. And that seems to do quite well.
  • The biggest for users incidents risk that I see is the automatic updates of the drivers without the possibility of installing them when it suits the user best. This control should have option for the users.

Regarding the publication of the source codes:

  • To begin with, 99% of those users who search a driver for their non-certified device will not read the driver code, as they never read the code of the custom DTH they used; just copy and paste.

  • A year ago, when all this edge stuff started, smartthings wrote us a post with some basic instructions, documentation…?, 7 or 8 sample drivers, open edgelua libraries and @erickv and @nayelyz to help us with everything could, which was and is a lot, thank you.

  • At that time it was essential to have open source drivers to understand or to learn how to implement the drivers and the use of libraries and methods.

  • The few of us who began to share code, I think that with the fingers of our hands they can be counted and I do not name anyone because it would leave someone forgotten, we published what we were doing to learn from each other, it was essential.

  • There were many consultations with @nayelyz or @erickv to solve the problems that we encountered on a daily basis.

  • Now there is a whole library of stock edge drivers available to everyone in github, which together with the edge libraries and documentation cover almost 90% of the example needs to make any new driver to any developer or advanced user who knows Lua and how devices work.

  • Now everyone is in a hurry to convert DTH devices from different manufacturers or older devices to edge, because groovy is coming to an end, so it’s easier to search for driver code made by others to get out of trouble and not waste hours and hours searching the edge libraries, in the example drivers and try and try…

  • There are developers who are earning an extra by making drivers for manufacturers who want to convert the DTH of their devices and surely invest many hours in it.

  • I believe that at this moment there is no reason that justifies the need to share the code that has cost us many hours of work. I share the drivers, update it, add new devices and solve people’s problem.

  • Having open source on github the only thing that has brought me is that I have to attend to requests here in the community and on github, but code contributions to improve the driver, only a couple of them from developers who are making community drivers too from the begining.

  • It is no longer copy and paste for users, so sharing the code helps little or no help and if someone legitimately wants to profit from this situation, let them do it, but let them do it with their time and knowledge and if they askin the community for help, as we have done everyone ever sure they will get it.

  • And I forgot, thanks to many users who put their time and devices at our disposal to test what we were doing

6 Likes

Do you mean that you would like only certified drivers to be installed in smartthing hub?
Of course how much would you be willing to pay for that certified driver?

Or in addition to investing hours in making a driver, I have to pay smarttings to certify it and make it available to you for free and publish the code on guithub?

2 Likes

I understand your comments. I must say I think this is a sad state to be in.

Of course, but this monetization should be very very transparent and there should be a ‘process’ followed. I am worried about a scenario where a developer creates a driver, it gets used (maybe more than expected) and then the developer decides to charge for support. Is this ok do you think? Is this what users should expect if they adopt a community driver? I am not saying this is wrong in any way, just that at the moment it is all very unclear IMHO.

Also what if the driver doesn’t get used much at first, does this mean the developer will not support it ‘much’

Argh this is very messy (IMHO)

I mean I would like to see a security setting in the hub that only allows certified drivers… not unlike Apple’s security settings that only allow app installation from certified developers/app store apps.

Depends on what it offers, and how much I need it. If it is a one trick pony, maybe $20-30. If it addressees a number of issues I need, maybe $50-75.

SmartThings doesn’t have a “driver store”, but perhaps they should. They’d take a percentage of your sales, in exchange for marketing and certification (just like the Apple App Store). If it is a SmartThings approved driver I would trust it and not expect to see the source code.

I am not looking for anything for free, but if it is not able to be checked/tested/certified by the platform provider, I want to see the source before I install it.

3 Likes

This is a little harsh I feel. If someone publishes the code on GitHub, IMHO opinion it would obviate the need for certification. (Appreciate it does not address your non-power user point, but it does actually mitigate it a bit)

I think if you want to monetize a driver, you have to offer more than just the development time. You should have to go through hoops and processes that protect customers. again just my opinion

100% agree…I sort of think the Apple eco system, with all its warts, is probably the ‘safest’ example there is

1 Like

I do not intend to monetize any of this, my professional life has already passed to a new state, now I just do what I want.

But what you say is not entirely true.
You can buy a car that has the basics, because you don’t need more and you pay x.
o You can buy another one with more extras because you also need them and you pay x + y + z

There are those who do not need any certification, they just want their device that they have bought to work and choose a platform that allows it and they like it and with this they do not harm anyone, they only choose for themselves and whoever needs more is within their rights. to choose Apple or whatever you want

4 Likes

That sounds reasonable to me and it is something a user can already do now if they accept they might not be able to install every driver out there.

Update: Changed ‘you/you’ to ‘a user/they’ for clarity.

Now a thought:

What if a bigger thing was made of ‘developer mode’ and you had to enable it to install community drivers? Would that be useful?

how many of our devices would stop working if we had only certified drivers!!

Nothing and no one prevents you from doing this now
No one is forced to install anything they don’t want to install

5 Likes