[Platformone] Key sharing across multiple platform1 builds. (was: Re: EXT :Re: [EXT] Platform1 SAR)

Miller, Timothy J. tmiller at mitre.org
Fri Jan 17 13:23:24 UTC 2020


Kevin--

Can you share the ansible play / ad-hoc command used to collect this?  

Thanks.

-- T

On 1/16/20, 15:16, "Kevin O'Donnell" <kodonnel at redhat.com> wrote:

    All, 
    
    
    Attached is the output from the authorized_keys files on all nodes in up-prod. Please let me know if you need any additional information. 
    
    
    Thanks, 
    
    KEVIN O'DONNELL 
    ARCHITECT MANAGER
    Red Hat Red Hat NA Public Sector Consulting <https://www.redhat.com/>
    
    kodonnell at redhat.com <mailto:kodonnell at redhat.com%20M:240-605-4654> M: 240-605-4654
     <https://red.ht/sig>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    On Wed, Jan 15, 2020 at 9:47 PM Kevin O'Donnell <kodonnel at redhat.com> wrote:
    
    
    Hello All, 
    
    
    I know we are putting a call together for tomorrow to discuss. In prep for that call to clarify the current keys that are used for the ec2-user post-deployment, and the key var's that are in Git (Or NOT). 
    
    
    "The up-prod-a keys were switched out before Xmas." And are NOT stored in Git. 
    
    
    The ec2-user does not exist and is not used in our current pipeline or code and or in our AMI's that are used to build the VPC's. The ec2-user account has been removed and the local "pipeline" named account is used to provision the VPC's and is the only
     account on the ec2 instances.
    
    
    To recap, the ec2-user no longer exists, admins are using IDM accounts with private keys that are not stored in git, and the keys for the pipeline account and or the old ec2-user account are cycled post-deployment and are not stored in Git. 
    
    
    As we move into Cloud1 we will also be deploying a series of tooling such as Certbot to cycle keys automatically. 
    
    
    Thanks, 
    
    KEVIN O'DONNELL 
    ARCHITECT MANAGER
    Red Hat Red Hat NA Public Sector Consulting <https://www.redhat.com/>
    
    kodonnell at redhat.com <mailto:kodonnell at redhat.com%20M:240-605-4654> M: 240-605-4654
     <https://red.ht/sig>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    On Wed, Jan 15, 2020 at 4:55 PM TRAMBLE, ELIJAH Q Capt USAF AFMC AFLCMC/HNC <elijah.tramble.1 at us.af.mil> wrote:
    
    
    +Wayne
    
    -----Original Message-----
    From: Miller, Timothy J. <tmiller at mitre.org>
    Sent: Wednesday, January 15, 2020 3:20 PM
    To: Kevin O'Donnell <kodonnel at redhat.com>
    Cc: Blade, Eric D [US] (MS) <Eric.Blade at ngc.com>; Lastrilla, Jet <jlastrilla at mitre.org>; Feiglstok, Colleen M [US] (MS) <Colleen.Feiglstok at ngc.com>;
     BRYAN, AUSTEN R Capt USAF AFMC AFLCMC/HNCP <austen.bryan.1 at us.af.mil>; DIROCCO, ROGER E GG-13 USAF AFMC ESC/AFLCMC/HNCP <roger.dirocco.4 at us.af.mil>;
    platformONE at redhat.com; Tim Gast <tg at braingu.com>; Bubb, Mike <mbubb at mitre.org>; TRAMBLE, ELIJAH
     Q Capt USAF AFMC AFLCMC/HNC <elijah.tramble.1 at us.af.mil>;
    tj.zimmerman at braingu.com; LOPEZDEURALDE, RICHARD A Lt Col USAF AFMC AFLCMC/HNCP <richard.lopezdeuralde at us.af.mil>; RAMIREZ, JOSE
     A CTR USAF AFMC AFLCMC/HNCP <jose.ramirez.50.ctr at us.af.mil>; Leonard, Michael C. <leonardm at mitre.org>; REINHARDT, MELISSA A GG-13 USAF
     AFMC AFLCMC/HNCP <melissa.reinhardt.2 at us.af.mil>; Taylor Biggs <taylor at redhat.com>; CRISP, JOSHUA M GS-09 USAF AFMC AFLCMC/HNCP <joshua.crisp.2 at us.af.mil>;
     BOGUE, STEVEN E CTR USAF AFMC AFLCMC/HNCP <steven.bogue.1.ctr at us.af.mil>; Wilcox, John R. (San Antonio, TX) [US] (MS) <John.R.Wilcox at ngc.com>
    Subject: [Non-DoD Source] Key sharing across multiple platform1 builds. (was: Re: EXT :Re: [EXT] Platform1 SAR)
    Importance: High
    
    I'm resurrecting this thread.
    
    I went back and inspected the IaC.  Per Kevin in the thread below, changes *were* made to the ec2-instance role.  This role now provisions ec2-user with a named key registered in AWS (recall that AWS only manages public keys, but this is all that's needed. 
     The named key is stored in the CI/CD variables as DEFAULT_KEY_NAME.
    
    I inspected all the current repositories for CI/CD definitions, extracted all the RSA private keys I could find, noted the DEFAULT_KEY_NAME, if present, for each.  Then I fingerprinted all the RSA keys and inspected the fingerprints for all keys registered
     in the CYBERCOM AWS account.
    
    TL;DR Findings:
    (Data in the raw results, below, and in the attached.)
    
    - The ec2-user SSH private key is shared across DSOP dev, staging, and production, *and* is shared with up-prod and up-dev.
    
    - The ec2-user SSH private key for DSOP production, staging, dev, up-prod, and up-dev is still being shared in GitLab CI/CD variables to anyone with Maintainer or higher access.
    
    - The GitLab holding these keys is publicly accessible.
    
    - There are several additional RSA private keys present in the CI/CD variables, but their use is unclear.
    
    Risks:
    
    - All keys contained in a GitLab CI/CD variable should be considered compromised.  There is no attribution for these keys.
    
    - Any user who can escalate privileges in GitLab via a bug, error, or social engineering can exfiltrate any of the private keys contained in CI/CD environment variables.
    
    Recommended mitigations:
    
    - Rotate all keys in raw results in all current platform1 instances.
    
    - Remove all exposed RSA keys from GitLab CI/CD configurations.
    
    - Move all deployment git repositories and CI/CD pipelines to a private GitLab instance.
    
    - Move all keys to a secrets manager, either under AWS control or deployed as a new platform1 capability.
    
    Outstanding issues:
    
    - I don't know how the gitlab-runner is being provisioned with the named key.  If anyone can walk me through the runner architecture, I'd appreciate it.
    
    - I need to track down any use/reuse of the additional identified RSA private keys.  The simple expedient is to remove them from GitLab CI/CD variables and see what breaks, but YMMV.
    
    Raw results:
    
    Repository                              DEFAULT_KEY_NAME        Domains serviced
    ----------                              ----------------        ----------------
    up-node-infrastructure                  up-ss-ansible           unified-platform.io <http://unified-platform.io>
    up-appdev-a                             up-ss-ansible           up-appdev-a.io <http://up-appdev-a.io>
    platform-up-infrastructure-up-node      n/a
    platform-infrastructure                 up-ss-ansible           levelup-staging.io <http://levelup-staging.io>
                                                                    
    levelup-dev.io <http://levelup-dev.io>
                                                                    
    dsop.io <http://dsop.io>
    platform-apps                           n/a
    
    Key usages
    ----------
    45:c6:a1:91:43:2a:17:17:9d:a3:d4:b9:0d:84:11:c1:43:54:1d:e1
            up-ss-ansible
            platform-apps/ANSIBLE_PRIVATE_KEY_FILE
            platform-infrastructure-up-node/ANSIBLE_PRIVATE_KEY_FILE
            platform-infrastructure/ANSIBLE_PRIVATE_KEY_FILE
            up-appdev-a/ANSIBLE_PRIVATE_KEY_FILE
            up-node-infrastructure/ANSIBLE_PRIVATE_KEY_FILE
    
    d5:c2:6a:b7:5c:a8:65:ed:94:eb:1d:01:48:90:7d:5b:11:3d:e3:1d
            up-node-infrastructure/SSH_PRIVATE_KEY_FILE
            platform-apps/SSH_PRIVATE_KEY
            platform-infrastructure-up-node/CI_RUNNER_KEY
            platform-infrastructure/CI_RUNNER_KEY
            up-appdev-a/CI_RUNNER_KEY
            up-node-infrastructure/CI_RUNNER_KEY
    
    58:47:84:db:40:4b:0a:2d:82:d2:ff:c3:69:ed:ec:0e:5f:02:82:1d
            platform-apps/GITLAB_PRIVATE_KEY
    
    e9:df:54:86:2f:60:35:19:1e:09:63:80:13:73:aa:fb:1f:54:50:65
            up-prod
            up-node-infrastructure/BASTION_KEY
    
    69:05:7d:9e:51:f6:f7:be:fb:b6:14:bd:d0:6e:70:ee:7a:ad:de:5d
            up-node-infrastructure/SSO_CERT_KEY
    
    -- T
    
    On 1/5/20, 14:35, "Kevin O'Donnell" <kodonnel at redhat.com> wrote:
    
        Hello Tim,
    
    
        Welcome back. Happy New Year.
    
    
        We have a plan in place to swap out the ec2-user for another user seeing as the major issue is the actual name of the user not its privs in prod.
    
    
        Incorrect up-prod-a keys were switched out before Xmas. This process will need to be included in the Day Two OPS onboarding process. Jet, who should be the holder of this key on day two? We are also ensuring that anyone that authenticates to the nodes
         in the vpc use dedicated IDM accounts with per user dedicated keys and sudo privs.
    
    
        Correct. Re-enforcing the Day Two requirements. And also supporting that the pipelines and CI process can support CI/CD to only dev/staging. For prod or any environment were the keys have been swapped and are not included as private Git variables we can
         not support CD into prod/appdev if so deemed.
    
    
        We are fast approaching policy with this topic. We should have a further discussion this week. I will be in San Antonio on Wed and Thur.
    
    
        Do you have any additional mitigation techniques Tim?
    
    
        Thanks,
    
        KEVIN O'DONNELL
        ARCHITECT MANAGER
        Red Hat Red Hat NA Public Sector Consulting <https://www.redhat.com/>
    
        kodonnell at redhat.com <mailto:kodonnell at redhat.com%20M:240-605-4654> M: 240-605-4654
         <https://red.ht/sig>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        On Sun, Jan 5, 2020 at 2:58 PM Miller, Timothy J. <tmiller at mitre.org> wrote:
    
    
        Some more points of interest--
    
        - The ec2-user account can't currently be avoided given the current design of the IaC.
    
        - This SSH key provisioned for this account is shared across up-prod-a, up-dev-a, and DSOP.
    
        - The ec2-user SSH privkey is available to anyone with Maintainer or higher access to the GitLab repo that holds the customer's environment definitions or the platform-infrastructure repo.
    
        -- T
    
        On 12/20/19, 08:13, "Blade, Eric D [US] (MS)" <Eric.Blade at ngc.com> wrote:
    
            I just want to clarify on the topic of the EC2-user.  The key is attribution.  We need to know who or what is configuring the systems.
    
            We are repeatedly seeing the ec2-user account used to manually configure systems.  Ec2-user should only be used to perform programmatic tasks from committed and
             reviewed code as part of initial provisioning.   If the code to provision and configure systems is unavailable, then you must create attributable accounts to perform changes to the systems.
    
            Any use of ec2-user remote login or su to ec2-user will be flagged as a violation and the source IP or user account logged as the violating source.  Any manual/command
             line activities MUST be performed using an attributable user account.
    
            If that is not clear, please let me know and I will attempt to elaborate further.
    
            Thank you
    
    
            Eric Blade, GXPN, GPEN
            Unified Platform System Coordinator
            Northrop Grumman Mission Systems
            Work: 410.649.0706
            Mobile: 240.258.8089
    
    
    
            From: Kevin O'Donnell <kodonnel at redhat.com>
    
            Sent: Thursday, December 19, 2019 6:22 PM
            To: Lastrilla, Jet <jlastrilla at mitre.org>
            Cc: Feiglstok, Colleen M [US] (MS) <Colleen.Feiglstok at ngc.com>; BRYAN, AUSTEN R Capt USAF AFMC AFLCMC/HNCP <austen.bryan.1 at us.af.mil>;
         DIROCCO, ROGER E GG-13 USAF AFMC ESC/AFLCMC/HNCP <roger.dirocco.4 at us.af.mil>;
        platformONE at redhat.com; Tim Gast <tg at braingu.com>;
             Bubb, Mike <mbubb at mitre.org>; TRAMBLE, ELIJAH Q Capt USAF AFMC AFLCMC/HNC <elijah.tramble.1 at us.af.mil>;
        tj.zimmerman at braingu.com; LOPEZDEURALDE, RICHARD A Lt Col USAF AFMC AFLCMC/HNCP <richard.lopezdeuralde at us.af.mil>; Blade,
     Eric
         D [US] (MS) <Eric.Blade at ngc.com>;
             RAMIREZ, JOSE A CTR USAF AFMC AFLCMC/HNCP <jose.ramirez.50.ctr at us.af.mil>; Leonard, Michael C. <leonardm at mitre.org>; REINHARDT,
     MELISSA
         A GG-13 USAF AFMC AFLCMC/HNCP <melissa.reinhardt.2 at us.af.mil>; Taylor Biggs <taylor at redhat.com>; Miller, Timothy J. <tmiller at mitre.org>;
             CRISP, JOSHUA M GS-09 USAF AFMC AFLCMC/HNCP <joshua.crisp.2 at us.af.mil>; BOGUE, STEVEN E CTR USAF AFMC AFLCMC/HNCP <steven.bogue.1.ctr at us.af.mil>;
         Wilcox, John R. (San Antonio, TX) [US] (MS) <John.R.Wilcox at ngc.com>
            Subject: EXT :Re: [EXT] Platform1 SAR
    
            Colleen,
    
    
            Thank you for the results and recommendations. We will get GIT issues crated for your findings and will prioritize the mitigation and implement them as code in our future IAC deployments. Many of the findings in the current VPC have been
             mitigated in up-prod-b with our current code release.
    
    
    
            Please let us know when you have finished and we can power down the host that you have been using for scanning.
    
    
    
    
            Note for everyone: Once we power down the ec2 instance ssh or port 22 will not be externally accessible. Thus, mitigating many of the risks associated with the ec2-user and the keys.
    
    
    
    
            Thanks,
    
    
    
            KEVIN O'DONNELL
            ARCHITECT MANAGER
            Red Hat Red Hat NA Public Sector Consulting <https://www.redhat.com/>
            kodonnell at redhat.com <mailto:kodonnell at redhat.com%20M:240-605-4654> M: 240-605-4654
             <https://red.ht/sig>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
            On Thu, Dec 19, 2019 at 4:52 PM Lastrilla, Jet <jlastrilla at mitre.org> wrote:
    
    
            Thanks Colleen. Sorry for the rushed feeling. If you want to take more time, please use tomorrow to do your testing.
    
    
    
            Thank you for all you do!!!!
    
            Get Outlook for iOS <https://aka.ms/o0ukef>
    
    
    
            ________________________________________
    
            From: Feiglstok, Colleen M [US] (MS) <Colleen.Feiglstok at ngc.com>
            Sent: Thursday, December 19, 2019 4:35:15 PM
            To: Lastrilla, Jet <jlastrilla at mitre.org>; BRYAN, AUSTEN R Capt USAF AFMC AFLCMC/HNCP <austen.bryan.1 at us.af.mil>; DIROCCO, ROGER
     E
             GG-13 USAF AFMC ESC/AFLCMC/HNCP <roger.dirocco.4 at us.af.mil>; Kevin O'Donnell <kodonnel at redhat.com>;
            platformONE at redhat.com <platformONE at redhat.com>; Tim Gast <tg at braingu.com>; Bubb,
         Mike
             <mbubb at mitre.org>; TRAMBLE, ELIJAH Q Capt USAF AFMC AFLCMC/HNC <elijah.tramble.1 at us.af.mil>;
            tj.zimmerman at braingu.com <tj.zimmerman at braingu.com>; LOPEZDEURALDE, RICHARD A Lt Col USAF AFMC AFLCMC/HNCP <richard.lopezdeuralde at us.af.mil>;
             Blade, Eric D [US] (MS) <Eric.Blade at ngc.com>; RAMIREZ, JOSE A CTR USAF AFMC AFLCMC/HNCP <jose.ramirez.50.ctr at us.af.mil>; Leonard,
         Michael
             C. <leonardm at mitre.org>; REINHARDT, MELISSA A GG-13 USAF AFMC AFLCMC/HNCP <melissa.reinhardt.2 at us.af.mil>; Taylor Biggs <taylor at redhat.com>;
             Miller, Timothy J. <tmiller at mitre.org>; CRISP, JOSHUA M GS-09 USAF AFMC AFLCMC/HNCP <joshua.crisp.2 at us.af.mil>; BOGUE, STEVEN E CTR
     USAF
         AFMC
             AFLCMC/HNCP <steven.bogue.1.ctr at us.af.mil>; Wilcox, John R. (San Antonio, TX) [US] (MS) <John.R.Wilcox at ngc.com>
            Subject: [EXT] Platform1 SAR
    
    
    
            All,
    
            The SAR and raw results from the new security testing will be sent through NGSafe in a few moments.
    
            As usual, I felt very rushed with the testing, and feel like I have not done as thorough of a job as required. I was unable to log into the Web UIs, as no one from the Platform1 team gave me the account information. I had issues with Nessus, so the
     CVE’s
             were found through OSCAP this time.
    
            A lot is the same as the last report, but please read through it, because there is some new information. I had to test as ec2-user again, which is another big issue that needs to be resolved ASAP. The more I use it and find out
             how it is being used, the more extremely concerned I am. It has multiple keys throughout the platform located in the .ssh directory, one of which is world readable. On some hosts, a real user is using the ec2-user account to create accounts, groups,
     and
         pull
             docker files. The account is non-attributable, so we have no way of knowing who is doing this. Someone could do serious damage with no consequence. I understand that the ec2-user is needed for standing up an ec2-image, but
            this account should only be used for implementing IAC, so that the changes implemented by ec2-user are codified.  If manual admin is required, that IAC should provision the appropriate attributable accounts, and those accounts should
             be used from then on. In my opinion, this is a critical finding and needs to be addressed ASAP.
    
    
            I will be available during the day tomorrow for any questions.
    
            Thanks
            Colleen
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    





More information about the platformONE mailing list