Earlier I wrote about my feelings on Google’s new verification process for sensitive and restricted Gmail API scopes, and here I’ll be posting live updates of GMass’s journey through the process. We’re doing this for the benefit of the thousands of developers that have yet to begin the process, are thinking about the process, or are frustrated with the process.
In my previous update on 1/5/2020, I mentioned that Wordzen, by some miracle, had managed to still have full access to the omnipotent https://mail.google.com scope despite skipping the security assessment. I spoke too soon. On January 13, I received word that the project had been reviewed, and my access to that scope was no longer.
Due to time constraints and wanting to keep my sanity, I haven’t posted live updates in a while, though much has happened. since August of 2019. I’ll attempt to summarize what’s happened lately, in this final update.
GMass was approved and issued the Letter of Assessment from Leviathan in October. Google then approved the restricted scopes that GMass needed to operate.
Also in October, Google announced that developers using the Google Sheets v3 API would need to migrate to v4, necessitating a new OAuth verification procedure, one that I’m still navigating.
In addition to GMass, I have two other apps that use restricted Gmail API scopes, Wordzen and SearchMyEmail.com. After Leviathan completed the assessment of GMass in October, I asked if they would now review Wordzen. Wordzen is a much simpler app than GMass and because I now had the knowledge of what a security assessment is, I figured Wordzen would be much easier. Unfortunately, Leviathan told me they were too busy to review Wordzen.
I considered engaging Bishop Fox or the new assessor, NCC, for Wordzen and SearchMyEmail, but because both of those apps are non-revenue-generating, I decided against it and to let those apps remain “unverified”, which comes with some interesting quirks.
In mid-November, Leviathan contacted me. Even though I had passed the security assessment, they needed to ensure that I had a Vulnerability Disclosure Program set up. As a result I created the URL gmass.co/incident and added this to the footer of the GMass website.
For SearchMyEmail.com, in June/July I had a lengthy back and forth with the OAuth team. I was at the stage where a security assessment was required, and I informed them that I would not be undergoing the assessment, would happily remain “unverified” and that I would just remain under the 100-user unverified app limit. I had planned to do this by revoking inactive tokens and forcing users to re-auth periodically. However, I found that Google’s counting of active tokens was flawed, and after complaining enough, they increased my limit from 100 tokens to 200 tokens.
For Wordzen, the outcome was different. After being sent multiple emails informing me I must undergo the security audit, I wrote back, noting that there are only 25 active users for Wordzen, and since I’m under 100, if Wordzen could continue operating that way. They responded with this detailed explanation which put my concerns at rest. Additionally, in a Google OAuth miracle, as of 2020, the Cloud Console for the Wordzen project is showing the full https://mail.google.com scope as an officially approved scope for the Wordzen app. I don’t know how that happened — Wordzen never went through the security audit.
Looks like Google has added a third security company, NCC, that can perform a security assessment. Also, Leviathan is no longer accepting new projects for 2019.
The security assessment officially kicks off. On the first day of testing, Leviathan finds a SQL injection issue which they determine is critical. I fix the issue later that evening and report this to Leviathan who then marks the issue as “resolved”.
I have my external alignment phone call with Leviathan. Because I’m essentially the sole developer of GMass, it’s just me from GMass, and one rep from Leviathan. He walks me through the process, collects some contact information from me, advises me what to do if their testing causes any technical issues on my end, like downtime, and gives me a timeframe of a few weeks to get everything done. On this call, I’m told that they’ve performed “tens” of assessments so far, and that no vendor has been unable to pass yet, which sets my mind at ease. Surely though, some software companies probably opted to not even begin the process due to cost. It’s also decided on this call that I’ll set up a private Slack channel for myself and a few members from the Leviathan team to coordinate activities related to the security assessment.
I finally receive information on the “external alignment” meeting with Leviathan, which will be the first step in the security assessment.
Within minutes I respond and request the first available time slot, which is August 14th at 1 PM PST.
It’s now been 5 days since I sent back the signed contract for Leviathan and haven’t heard anything further, so I follow up.
…and I hear back a few minutes later.
After not hearing back from Leviathan, I followed up on July 23rd, and did receive this response today.
A few minutes later, I received the official proposal. For privacy purposes, I won’t post the proposal here, but suffice it to say, it’s a standard contract with a quote, and there’s nothing specific to the security assessment of GMass in this proposal. The effort is scoped at a 3-day effort at a particular USD rate per day.
I sign and send the contract back on this same day.
After making some substantial security enhancements to our entire infrastructure, I reach out to Leviathan telling them that I’m ready to begin the security assessment.
Bishop Fox updates me again with some more information, including a What to Expect document for the security assessment. This document doesn’t contain any sensitive information, so I’m making it available for download.
I let Bishop Fox know that I’ll be reviewing the information and then letting them know if I want to proceed.
I’m told that the Self Assessment Questionnaire from Bishop Fox has been approved!
My contact at Bishop Fox updates me again on the status of the SAQ approval with Google.
What I find most interesting about this email is the mention of a deadline to have the security assessment scheduled. There’s never been any mention of this in the documentation from Google or my correspondence with the Google OAuth team.
I email Bishop Fox to ask about the approval status of the SAQ (Self Assessment Questionnaire), because it’s been a couple weeks and I haven’t heard anything. If Google approves their use of the SAQ, it lessens my cost of the security assessment.
My contact responds a few hours later.
5/16/19 (update from Google)
Google sent the below email, informing me that if I don’t go through with the security assessment, I’ll lose access to the restricted scopes. It also clarifies one of the prior points of confusion — that if my app is to be used within G Suite domains only, then I don’t have to go through the security assessment. Meaning, if I don’t care about taking on @gmail.com users, then I don’t need to go through with the assessment. The email also asks for confirmation of whether I will be proceeding or not. I have replied confirming my intention to go through with the assessment.
5/9/19 (two quotes arrive from Bishop Fox)
Bishop Fox explains that they are attempting to get approval from Google to satisfy one portion of the requirements via a “Self Assessment Questionnaire” rather than a full deployment review, and policy and procedure review. Of course, I welcome the simpler approach, and I’m waiting to see if this approach is approved.
5/3/19 (later that day)
Bishop Fox acknowledges receipt of the scoping survey.
5/3/19 (I respond to Bishop Fox’s scoping survey)
It took a while to fill out, because of the detailed questions in it.
5/2/19 (Proposal arrives from Leviathan)
I’m impressed with the speed at which Leviathan handles communication. It was just 15 minutes before I got a response to my initial inquiry, and I have a proposal the very next day after our phone call. I’ve been asked not to disclose pricing information, so out of respect for Leviathan, I won’t mention that here.
5/1/19 (Call with Leviathan and follow-up)
I have a short phone call with a rep from Leviathan, where I describe the nature of GMass, its public facing interfaces, and a little about its underlying architecture. Given that GMass does not have an API and is only usable as a Chrome extension, the rep indicates that this will be one of their simpler security assessments and would require 2-3 days of work. After the call, he sends me some information to verify and an NDA, which I send back the next morning.
4/29/19 (several hours later)
Bishop Fox responds within several hours of my email.
4/29/19 (15 minutes later)
Leviathan responds within 15 minutes of my email. We eventually schedule a phone call for mid-next week.
4/29/19 (later in the day)
4/29/19 (earlier in the day)
Google denies my request to skip the security assessment.
I respond to the notice asking if I can skip the security assessment if I reduce the Gmail API scopes I’m using for GMass.
I receive a notice from Google that the fun is only now beginning (proceed with security assessment).
(April Fool’s Day — maybe they’ll let me know this has all been a joke?)
I’m told I’m in the final stages of verification.
I respond with my agreement.
Google emails asking me to confirm my agreement with a statement.
I responded with another video.
3/21/19 (a few hours later)
I received an additional request deeming the first video as insufficient.
I receive this request from Google for an additional video.
I respond, letting Google know I’ve made the branding changes they suggested.
After Google presumably watches my video, they respond, asking them to conform to their branding guidelines.
I respond with the requested YouTube video.
Google responds with their request for a YouTube video.
I responded to the ambiguous request from Google.
Received this email with no project ID listed, and given that I manage multiple apps built for Gmail, I didn’t know if this pertained to GMass or not.
I respond to Google’s request for the scope explanation.
Email received from Google asking for an explanation of the need for the full mail.google.com scope