Posts tonen met het label security. Alle posts tonen
Posts tonen met het label security. Alle posts tonen

vrijdag 12 juni 2020

Internet voting

Gene Spafford is one of my old security heroes. As you may know, not having an ICT background I'm not an expert in technical IT security, but what I learned about Unix and Internet security, I learned from Simson and Spafford (great introduction into security, also for Windows users...).

And if he speaks, you need to listen. This time he spoke about Internet Voting. The occasion being the US presidential primary elections. There are lots of voices who claim that internet voting is essential for democracy. Spaf is cautious, and with lots of reason, because, as he shows, technology is not stable and secure enough to facilitate free elections, there are too many obstacles from a technology point of view. No, not even Blockchain will make it secure enough. Here's the link to the interview with Spaf. And to all politicians: this expert knows more about security than all of you combined.

Why this post if I can just point to the interview?
Well, first the aspect of Identity was not mentioned. And we should of course touch on that as well. And second: this topic is a global topic, not just covering the US primaries.

Even though elections are anonymous, anonymity only extends to
  • the knowledge of who voted for whom
  • the knowledge of who voted
Those are the only anonymity requirements. The latter may not even be required if voting is mandatory by law, but then again, even in that case privacy may be relevant amd anonimity may extend to that topic.

But just the possibility, the justification for voting does require knowledge of the voter:
  • you are only allowed to vote if according to legislation you are considered to be a voter
  • you can only vote once
  • unless you have a uniquely identified mandate from another voter
And this is where Internet Voting is hurt even more than just by the techology part.

In order to make Internet Voting possible, these requirements have to  be met:
  • you need to have a trusted identity
  • an identity that is recognized in a 'voter directory'
  • there must be a transaction log to prevent multiple voting by one identity
  • there must be a mandate register, to enable mandated unique votes
Just imagine the first requirement in relation to Internet Voting.

woensdag 22 mei 2019

Password non-compliancy

Google reported that for 14 years passwords for G Suite have been stored in a less than secure way: "We made an error when implementing this functionality back in 2005". Interesting. Now how about compliancy?

Below a less than complete overview of laws and regulations defining policies with regards to authentication practices, like password storage. It looks like Google and G Suite users are non-compliant...

·       International
  •  ISO 27001 / 27002 ch9
  • ISO 27017 ch9
·       EU
  • GDPR Appropriate controls Article 32, ‘security of processing’
  • ENISA IAF 6, R-11 SO11
  • PSD2 – Strong Customer Authentication
  • eIDAS safeguard S 2.11
·       France
  • SecNumCloud 9.5.a
·       Germany
  • BSI C5 IDM-11
·       US
  • SOX 404
  • NIST SP 800-53 R3
  • NIST SP 800-63b
  • US DoD Instruction 8500.2
  • Army Regulation 25-2
  • GLBA - Gramm-Leach-Bliley Act
  • CJIS Criminal Justice Information Services
  • COPPA 312
·                California
  • Information Privacy: Connected Devices (SB-327)
·       Canada
  • Pipeda Section 5
·               Ontario
  • GO-ITS 25 3.1

India
  • Information Technology Act

Austalia
  • Protective Security Policy Framework

New Zealand 
  • NZISM 5.2.3 and 16.1

·       Industry specific regulations
  • PCI DSS 3, 7, 8, 12
  • HIPAA 45CFR164
  • NERC - North American Electric Reliability -CIP-007-3
·       Best Practices
  • OWASP Password Storage Cheat Sheet
  • SANS Password Construction Guidelines
  • CSA CCM IS07
  • AICPA SOC2SM S3.2.0
  • BITS AUP & SIG v6
  • COBIT DS05
  • HiTrust 01a
  • ITAR CFR 120.17, EAR 15 CFR 736.2
  • xkcd 936


woensdag 6 april 2016

How to manage non personal (system) accounts



Customer often ask me for best practices regarding management of non-personal or highly privileged accounts in the process of implementing an Identity and Access Management (IAM) solution. This is an interesting question, because in an IAM project, we try to manage all kinds of accounts, but this type of account is different from accounts that are owned by end users. This type of accounts can’t directly be related to a uniquely identifiable person, nor are they the result of the 'joiner – mover - leaver' HR processes in an organization. So, how do you manage the existence of such an account?

Types of non personal accounts
There are Non Personal Accounts (NPA’s) and Non-personal System Accounts: (NPSA’s). We can identify:
-       Admin or root account
The admin or root account of Windows and Linux or Unix servers is highly privileged system account on the respective platforms.
o   It is authorized at the highest level
o   It has access to every file and process running on a platform.
o   The ‘root’ or 'Admin' has the permissions to change the behavior of their component;
o   Commands can be run from it as well as react to responses of the system.
o   Operational use of the account needs to be monitored continuously.
-       Superuser account
It's a business information system or application account, that looks a lot like ‘root’. It is there when the system is installed, it’s a system account. The Superuser has permission to modify, making it a risk critical account in an information system. Like Sap* in a Sap environment.
-       Service account
Accounts for middleware processes like DBMS’s, ESB’s or other ICT components that run on top of the Windows or Linux operating systems. A special form of a non-personal account is an application account in a DBMS to give database access to an application.
-       Batch user account
An account used by a batch job process, it is most commonly used for scheduled batch jobs, like nightly file transfers.

NPA characteristics
NPSA’s have a few characteristics in common. They are non-personal and they are not directly connected to a person. Login with the account doesn’t leave an audit trace showing which person is actually using it. And, of course, NPSA's are very powerful and so use of them should be tightly controlled.

Service and batch accounts also have a specific similarity: one typically doesn't login with such an account, these accounts are not used interactively. In most cases such an account is only used as a placeholder with some permissions to perform specific tasks, like running a webserver with the limited capability to process https-requests and write log files.

Modern IAM solutions can be implemented to facilitate provisioning of personal accounts for specific user functionality. Since non-personal accounts are not an attribute of an identity, there is not a sole user that can be connected to an NPA, so an IAM solution is not suitable to manage them.

If not an IAM problem, then what?
These accounts belong to the component that they manage. The Windows operating system comes with the Administrator account, Linux comes with root. You cannot install Linux without a root account. You may not by default be able to login with it (as on Ubuntu), but the account is there. So by installing an OS, you automatically get the 'God'‑account. There is no choice, it is the result of the change process that leads to the implementation of the OS. Such an NPSA should only be used in a controlled manner from specific processes, like an incident management process (admin may be needed to assist in a catastrophe), or the change management process (the admin permissions may be required to perform an infrastructural change).

The same is true for service accounts: when installing a middleware component, like a database management system, the account is created to enable the service, hence the name service account. Again, you have no choice. You might install the service using a 'root' – type account, but that will result in a security violation, Thou shalt not run any service as root!

And again, for batch account the same is true again: a batch process is created as the result of a change request. The batch tasks are created to support an information system, or a business process. The batch job is created to make it possible to schedule the automatic execution of the tasks. A batch account is created to make it possible to use resources on the system.

This leads to the following conclusion:
Non-personal accounts have to be managed in the change management process.

This has the following implications:
  • The account has to be registered in the configuration management database, it is an attribute of the component that it belongs to. Admin belongs to the Active Directory. Root belongs to a linux server. The account named 'Oracle' probably belongs to an Oracle dbms instance: the dbms is a managed component and the account name is Oracle.
  • The account has an owner, who is accountable for the use of the account. Admin and root belong to the manager of the ICT department. The SAP account is owned by the system owner of the SAP system
  • The interactive accounts should only be used for infrastructural changes or calamities.
  • The non-personal system accounts should never be used interactively for operational tasks.
  • The passwords of these accounts must remain secret. They should be secured by means of an envelope procedure, a password vault, or by using a Privileged Account Management system (PAM, like CyberArk, Hitachi PAM, Thycotic or CA PAM to name just a few). Any use has to be related to a service management ticket (an incident or a change). 
So, there you have it. Non-personal accounts must not be managed in an IAM solution, they have to be managed by the Change Management processes in an organization. Either they are owned by ICT or by the system owner who owns the information system that the account is used for. You should not manage privileged accounts in an IAM solution. And if you have to execute tasks with one of these accounts: use a Privileged Account Management system to secure it.


zondag 28 juni 2015

Fighting Android insecurity FUD

This week Dutch newspaper Volkskrant warns against a severe leak in Android that enables attackers to install software on an Android device without consent of the user and without even touching the device. The journalist of the Volkskrant wrote an article about some Dutch scientists who claim to have discovered a leak in Android security. They posted their findings with a demo of the leak in a video (that till this day can be downloaded here: https://drive.google.com/file/d/0B73YUDeOq3OWTG93enVYVWN3TXc/view?pli=1).

The video shows some convincing and exciting insights in the hack. From an infected webbrowser the scientists install malicious software on a cell phone using the browser version of Google Playstore, thereby enabling all sorts of abuse on the phone. In the video you see some very alarming demonstrations and scenario's: abuse of Paypal-accounts, the option of reading SMS-messages, e-mails, etc.


The issue exists because of the tight integration between all Google services, from Gmail to Play Store, and that extends to Android devices. This integration is based on the fact that all Google services are bound to one Google account. The scientists show that using a stolen gmail account, an attacker could upload malicious software to an Android device using only the play store web front end, without touching the device itself. The user takes action on behalf of the attacker, by activating the malware, thereby opening up the device for the attacker.


The scientists end their performance with the statement that you should build security into a product, instead of building security on. This statement stems from their claim that they reported the issue to Google, but that they never got a reply. Anyway, all major Dutch media posted the item as well, Android is a big risk.

If I were a scientist or a journalist, I would check the facts before posting these statements and ask some questions first. My Questions would look like this:
How does a Google account get hacked?
The scientists claim that a Man in the Browser attack could be used, but they never say how, when and why. I believe it could be done, but the first conclusion must be: this Hole, or whatever it is they found, can only be done if a google account is stolen, by whatever means. This clearly is not an Android problem. If a Google account is stolen, there are more problems than just uploading malware.
But when you think further, the first and foremost issue is the fact that if a browser gets infected with evil code, an attacker controls that browser (and sometimes more) which means that people who use online banking, Paypal, read their e-mail through a browser or shop online can expect an attacker to harvest all data. And yes ... obviously use all sorts of logins for evil purposes: Twitter, Facebook, Microsoft and of course Google. This isn't new. Investigative journalist Brenno de Winter (@brenno) demonstrated this a year ago and he explained how you can abuse such a weakness. In his case he used a KLM-domain that the company had forgotten [http://www.nu.nl/internet/3733033/vergeten-klm-domein-opende-weg-phishing.html] (Dutch). The server the domain name pointed to, was vulnereable to all sorts of attacks. This way an attacker could install webpages filled with malware, make look-alike (phishing) websites, etc. Using freely available tools the journalist created a fake Google-loginpage to harvest credentials or use the credentials that the malware harvests. Then he installed Cerberus App [http://www.cerbereusapp.com/] on the Android device. With this software you can control the phone, read SMS-messages, record audio, record video, take pictures and even worse: you can hide the app from the drawer. So the user won't notice he is being spied on. This looks remarkably like the new leak by the scientists. New? No way. Science? No way. Is this an Android, or Google issue? No way.
How does the malware get installed on an Android device?
The scientists claim that you can install malware on an Android device using Google Play services. This clearly is not the case. There is (almost) no malware on the Play store. Google security controls towards Play Store are so strong, that malicious software can hardly be published. Repackaging regular software with a malicious load and uploading it to Google Play store is not feasible.
So, no Android issue here either.
Will Android users activate software on their device?
Who knows. People are curious and not always security aware, they might just install malware. For an atacker to create a business case for this scenario is not realistic.
But again, this is not an Android issue, as all phishing tests prove.
How is the tight integration on other platforms?
Microsoft and Apple use the same kind of integration on Windows Phone and iOS. I have no experience with those platforms. The differentiator is that these platforms don't have remote push of apps. The vulnerability may be different from Android.
This Android feature could be a risk.
Is there no work-around, what should end users do to prevent compromising of these leaks?
No idea, science gives no answer... And the journalist doesn't show any hints either.


Did you examine this exploit on your own systems? Because criticising scientists and journalists without evidence is only too easy...
Here I go: I installed a new browser on my Windows PC (in order to be able to act as an attacker).
Next I browsed to play.google.com and behold, all apps are visible.
Next I logged into Play service using my single Google account.
Yes, logged in, almost... the Google two factor authenticator function popped up, reporting it sent a text message to my mobile device...



My bad, I'm not a hacker, I failed miserably. I could not login to google play services without entering the text message on my mobile phone. I could not even push regular software from PlayStore to my device. Oh no, I am not a scientist or journalist, I couldn't replicate the findings, I can't exploit the Android leak as an attacker. Or... is activating 2 factor authentication enough to mitigate the risk?


So, dear scientists and journalists, before posting FUD, please investigate the problem, not the symptom.  If you claim that there is a vulnerability (not even a leak), do so from different perspectives. First check the facts. Then check if the issue is new. Then doubt your own findings. That's science. That investigative journalism. If you don't, you just create FUD.


Disclaimer: I'm not an Android user.