메인 콘텐츠로 건너뛰기
블로그 Linode (주) 보안 조사 회고

보안 조사 회고

blog-generic-triangles

2016년 1월 5일 에 비밀번호 재설정을 발행했습니다. 세 고객 계정의 무단 액세스를 조사하는 동안 모든 Linode 고객에게. 우리는 이러한 문제에 대해 연방 당국과 협력해왔으며 범죄 조사가 진행 중입니다. 오늘 우리는 조사 결과와 이 조사를 지원하기 위해 보유한 타사 보안 회사의 결과를 공유합니다.

착수하기 전에 귀하의 계정 정보가 안전함을 확인하고자 합니다. 이 사건의 영향을 받은 고객은 3명 뿐이며 이 문제를 직접 해결했습니다.

어떻게 된 거예요

이것은 7월과 12월의 두 가지 개별 조사에 대한 복잡한 회고전입니다. 사례는 유사점을 공유하지만 두 가지가 관련되어 있다는 증거는 없습니다. 그럼에도 불구하고 여기에 우리가 이해하게 된 사건의 전체 타임 라인이 있습니다.

7월 9일에 고객이 Linode 계정에 대한 무단 액세스를 통지했습니다. 고객은 침입자가 Linode 중 하나에 대한 루트 암호 재설정을 확인하는 이메일 알림을 받은 후 계정에 대한 액세스 권한을 얻었음을 알게 되었습니다. 초기 조사에 따르면 첫 번째 시도에서 무단 로그인이 성공했으며 정상적인 활동과 유사했습니다.

7월 12일, 법 집행 기관의 개입을 예상하여 고객은 무단 액세스와 관련된 것으로 여겨지는 IP 주소에 해당하는 Linode에 대한 보존 요청을 접수했습니다. 우리는 요청을 수락하고 고객에게 악의적인 활동의 원인이 되는 Linode를 뒷받침할 추가 증거(예 : 로그 파일)를 제공하도록 요청했습니다. 고객과 법 집행 기관 모두 후속 조치를 취하지 않았으며 가능한 원인 없이 고객 데이터를 조사하지 않기 때문에 보존된 이미지를 분석하지 않았습니다.

같은 날, 고객은 계정에 액세스한 사용자가 계정에 액세스하는 데 필요한 2FA 자격 증명이 포함된 모바일 장치를 몇 주 전에 분실했다고 보고했으며 소유자가 얼마 후 원격으로 장치를 초기화하려고 시도했다고 설명했습니다. 또한 이 사용자는 취약한 암호를 사용했습니다. 이 정보에 비추어 Linode에서 자격 증명을 얻었음을 뒷받침하는 증거가 없으므로 더 이상 조사하지 않았습니다.

12월 9일에 독립적인 보안 연구원이 저희에게 연락했습니다. 연구원은 수많은 다른 서비스 제공 업체로부터 자격 증명을 훔친 개인을 추적하고 있다고 주장했습니다. 연구원은 개인이 이러한 훔친 자격 증명을 사용하여 일부 고객의 계정에 로그인하려고 시도했을 수 있음을 알려주기를 원했습니다.

초기 조사에 따르면 제공된 IP는 실제로 첫 번째 시도에서 세 개의 계정에 로그인하는 데 사용되었습니다. 즉, 사용자는 일반 사용자와 마찬가지로 로그인에 필요한 자격 증명을 사용하여 Linode Manager 로그인 페이지에 도달했습니다. 그 날 우리는 고객들에게 연락을 했고 각각의 활동이 의심스럽다는 확인을 받았습니다. 또한 이러한 계정 중 어느 것도 다단계 인증이 활성화되지 않았으며 모두 취약한 암호를 사용했음을 확인했습니다.

12월 13일에 우리는 차량 전체에 필요한 XSA (Xen Security Advisory) 유지 관리를 시작하여 24시간 현지 야간 시간에 서버를 재부팅했습니다. 조사와는 관련이 없지만 이는 12월 18일까지 계속되었으며 상당한 자원 제약이었습니다.

12월 14일, 인프라에 대한 침입의 증거를 발견하지 못했지만 타사 보안 회사와 인터뷰를 시작하고 여러 법 집행 기관에 연락했습니다. 또한 사용 가능한 모든 내부 리소스를 노력에 전념하고 남용 또는 오용의 증거를 식별하기 위해 환경을 면밀히 조사하기 시작했습니다.

12월 17일이 사건과 7월 사건의 유사성 때문에 우리는 7월 사건을 재개했고 이제 그 조사에서 유지된 이미지를 조사할 충분한 이유가 있다고 결론지었습니다.

Linode는 TOTP를 사용합니다 2단계 인증을 제공합니다. 이는 당사 서버와 고객의 2단계 인증 앱(예 : Google Authenticator)에 저장되고 공유되는 비밀 키를 사용하는 알고리즘입니다. 이 알고리즘은 사용자가 로그인 중에 추가 인증 구성 요소로 제공하는 시간에 민감한 코드를 생성합니다. 이러한 비밀 키를 데이터베이스에 저장할 때 암호화합니다.

7월 조사에서 이미지를 검토한 결과 TOTP 키를 제공하면 TOTP 코드를 생성 할 수 있는 소프트웨어를 발견했습니다. 우리는 TOTP 키를 보호하는 데 사용하는 암호 해독 방법과 이를 암호화하는 데 사용하는 비밀 키를 구현하는 소프트웨어를 발견했습니다. 또한 bash 기록에서 일회성 코드를 성공적으로 생성한 명령을 찾았습니다. 발견된 자격 증명은 12월에 이루어진 무단 Linode 관리자 로그인과 관련이 없었지만, 이 정보의 발견은 조사의 심각성을 크게 바꾸었습니다.

12월 21일 우리의 제 3자 보안 파트너가 조사에 참여했습니다. 이 팀은 침입자가 당사 데이터베이스에 포함된 고객 자격 증명에 액세스하도록 허용했을 수있는 무단 시스템 수준 활동을 식별하기 위해 포렌식 분석을 진행했습니다. 팀은 또한 한 Linode 관리자 계정에서 다른 계정으로 측면 이동을 제공했을 웹 애플리케이션 오용의 증거를 검색했습니다. 또한 팀은 Linode 데이터베이스에 대한 액세스 권한을 얻기 위해 가능한 공격 벡터를 식별하기 위해 표적 취약성 평가를 시작했습니다.

12월 25일 에 인프라에 대한 DDoS 공격이 시작되었습니다. . 무단 액세스와 관련된 이러한 공격을 뒷받침할 증거는 없지만, 공격에 필요한 리소스는 조사에서 제외됩니다. 이것은 직원들이 휴가를 떠나는 것과 결합되어 우리의 지원 및 운영 팀에 추가적인 문제를 야기했습니다.

1월 5일 보안 파트너가 조사를 마치고 비밀번호 재설정을 발표했습니다. 내부 보안 팀은 향후 몇 주 동안 인프라를 계속 검토하고 전반적인 보안을 개선하기 위한 세부 계획을 개발했습니다.

조사 결과들

보안 파트너의 조사 결과는 고객 자격 증명을 공개한 Linode 인프라의 남용 또는 오용의 증거가 없다는 결론을 내렸습니다. 또한 보안 파트너의 인프라 및 애플리케이션 평가는 이 수준의 액세스를 제공할 벡터를 산출하지 못했습니다.

Linode의 보안 팀은 Lish의 SSH 게이트웨이에서 잠재적으로 12월 17일에 발견된 정보를 얻는 데 사용될 수 있는 취약점을 발견했지만, 이 가정을 뒷받침할 증거는 없습니다. 우리는 즉시 취약점을 수정했습니다.

무단 액세스를 설명할 수 있는 다른 이론으로는 이전에 다른 온라인 서비스에서 사용되는 취약한 암호 또는 해당 사용자에 대한 피싱 공격과 같은 외부 손상이 있습니다.

우리가 하는 일

우리는 사고와 관련이 없는 영역을 포함하여 인프라를 포괄적으로 개선하기 위해 배운 것을 사용하고 있습니다. 다음은 우리가 노력해 온 몇 가지 사항입니다.

인증 마이크로 서비스: 여러 애플리케이션(예 : Linode 관리자 및 Lish)이 사용자 인증을 수행합니다. 이전에는 이러한 응용 프로그램이 데이터베이스 내에서 직접 자격 증명 정보에 액세스 한 다음 자체적으로 비교를 수행하여 이 기능을 수행했습니다. 우리는 모든 고객 자격 증명의 소유권을 유지하는 신중하게 보호되고 모니터링 되는 마이크로 서비스를 포함하는 새로운 접근 방식을 개발했습니다. 이 방법에서는 애플리케이션에 사용자 인증이 필요한 경우 마이크로서비스가 간단한 "예"또는 "아니요"를 반환하여 자격 증명을 확인할 수 있습니다. 응용 프로그램은 자격 증명 정보에 액세스 할 수 없습니다. 실제로 이 마이크로서비스의 롤아웃이 완료되면 인프라를 지원하는 데이터베이스에 자격 증명 정보가 전혀 포함되지 않습니다. 또한 이전에 수천 번의 라운드를 통해 숙련된 SHA-256 해시로 저장되었던 고객 암호는 bcrypt를 사용하여 저장되며 후속 로그인에서 원활하게 업그레이드 됩니다.

Linode Manager 알림: 새로운 IP 주소의 로그인 시도 및 로그인 실패에 대한 알림을 포함하여 고객이 각각의 계정 활동에 대해 받는 알림을 개선하기 위해 노력할 것입니다.

CC 토큰화: 조사 결과 신용 카드 정보에 액세스했다는 증거는 없었지만 신용 카드 정보 저장과 관련된 위험을 제거하기 위해 결제 프로세서의 토큰화 기능을 활용하고 있습니다.

수단: 우리는 클린 데스크에서 암호 표준에 이르기까지 다양한 주제에 대해 NIST 프레임 워크에서 파생된 여러 정책을 개발해왔습니다. 중요한 새 정책은 데이터베이스 및 인증 서버와 같은 인프라의 민감한 요소에 대한 "보안 영역"을 만드는 것입니다. 이러한 노력의 결과로 민감한 시스템과 데이터에 액세스 할 수 있는 직원 수가 크게 감소했습니다.

고용: 위에 설명된 변경 사항 외에도 고위 보안 전문가 고용 중이며 우리 회사에 합류하여 보안에 전념하는 더 큰 엔지니어 팀을 이끌었습니다. 이 팀은 우리가 현재 모범 사례를 따르고 있는지 확인할 뿐만 아니라 서면 정책을 확장하고 프로비저닝 절차를 공식화하며 근본적으로 우리 정책이 프로세스와 책임에 의해 지원되도록 할 것입니다.

새로운 Linode API : 가장 중요한 장기 전략은 기존 ColdFusion 코드베이스를 다시 작성하여 새로운 시작 기회를 제공하고 지난 13년 동안 배운 교훈을 적용하는 것입니다. 이를 위해 우리는 stateless, RESTful 및 Python으로 구현된 새로운 Linode API를 구축했습니다. 우리는 지난 수개월 동안 이 작업을 해왔으며 향후 몇 주 내에 새 API의 공개 알파를 발표할 것입니다.

오픈 소스 Linode Manager : 이 새로운 API는 현재 관리자를 대체할 오픈 소스 Linode 관리자를 포함하여 향후 모든 일의 기반이 될 것입니다.

앞서보기

우리는 소통과 투명성 측면에서 개선의 여지가 있음을 알고 있습니다. 12월 내내 XSA 및 지속적인 DDoS 공격에도 불구하고 DDoS 공격의 성격과 범위와 이 보안 사고를 고객에게 더 일찍 알려야 했습니다. 당시 우리가 자원에 제약이 있었다고 말하는 것은 공정한 평가가 될 것입니다. 그럼에도 불구하고 우리는 고객과의 빈번하고 투명한 커뮤니케이션을 촉진하기 위해 향후 이와 같은 중요한 이벤트에 팀원을 임명할 수 있도록 더 잘할 수 있었고 그 이후로 절차를 변경했습니다.

이 행사를 통해 저희를 지원해주신 고객 분들께 대단히 감사드립니다. 우리는 귀하의 권장 사항을 듣고 지난 몇 달 동안 귀하가 제공한 지원을 느꼈습니다. 우리는 계속해서 귀하의 피드백을 듣고 행동한다는 것을 아십시오.

실망하게 된다면 얼마나 안타까운 일인지 말씀드리면서 마무리하겠습니다. 우리는 호스팅 제공 업체로서 귀하가 우리에게 두었던 신뢰를 소중히 여기며 매일 그 신뢰를 얻기 위해 최선을 다하고 있습니다. 여기에 제공된 세부 정보가 잘못된 정보를 정리하고 개선 기회를 해결하고 올바른 일을 수행하며 고객과의 커뮤니케이션 및 투명성을 높이려는 우리의 의지를 보여주기를 바랍니다.

댓글 (17)

  1. Author Photo

    *”…we are incredibly grateful for the customers who have supported us throughout these events… [we] felt the support you’ve provided over the past few months… We value the trust you’ve placed in us…”*

    Nice sentiments, but words are cheap. You could have shown your appreciation by giving people some money off their bill for the period in question

  2. Author Photo

    If there is to be a new Linode Manager, please please PLEASE do not try and “modernize” or “streamline” the interface like Namecheap did. I like my utilitarian and functional Manager.

  3. Author Photo

    “We found software implementing the decryption method we use to secure TOTP keys, along with the secret key we use to encrypt them. We also found commands in the bash history that successfully generated a one-time code.”

    How do you explain the presence of software using the decryption method you use to secure TOTP keys, along with the secret key you use to encrypt them?

  4. Author Photo

    There are always some bumps on the road, sometimes these are big and hard to pass thru, but I think that you’re on the right track.

    Keep up the good work 🙂

  5. Author Photo

    The most significant take away for me is that Linode is becoming more transparent. Please continue down this path.

  6. Author Photo

    Good news for the new Linode manager, is there any ETA?

  7. Author Photo

    Long-term customer here. I appreciate all the effort made during the difficult time over the holidays. However, I have asked for 2FA by SMS rather than google authenticator (or in addition to), and was told it will not be happening. It seems that this breach could have been avoided at least in part if 2FA by SMS had been used. The user who lost his phone would have moved his phone number to his new phone as soon as it was replaced. The entire compromise of the TOTP algorithm would not have been possible. So my request, and recommendation still stands; give us 2FA by SMS if we want it.

  8. Author Photo

    I know how difficult these situations can be and wish you all the best in your continued growth and improvements. Unfortunately, I’ll be switching to another provider after reading this. I stuck around waiting for an explanation that I hoped would satisfy my concerns and this certainly doesn’t do that… There is reasonable evidence that your story regarding the cell phone is incorrect. In my opinion you should have had a senior security director years ago. Given the nature of the July incident, that image going unexamined is mind boggling and no explanation is given about how the 2FA crypto keys could have ended up on that system. It sounds entirely plausible your infrastructure got breached in July or earlier by a skilled attacker and the evidence is simply not there months later.

    It sounds like you’re moving in the right direction, but those are some seriously poor decisions by those in charge and I’ve lost confidence that further mistakes won’t be made.

  9. Author Photo

    I like the current Linode manager. It’s simple and fast and clean. Please don’t change it too much. (Don’t go all Namecheap on us)

  10. Author Photo

    I’m a longtime Linode customer as well. After reading up on this latest incident I am seriously considering moving my infrastructure to another provider. I’ve been through a number of these cases with Linode and so far have been unaffected and given them the benefit of the doubt. I completely understand that threats are uncovered and exploited and that’s a risk you take with any provider. This isn’t about me taking a knee jerk reaction. I’m fully aware that other providers have been exploited as well but Linode have had multiple exploits and that is reason for concern.

    In this post you state that you found software on a client’s VPS generating login credentials using a very private piece of your data and a piece of data that can be used to decrypt other customers data and you have no idea how it arrived on a clients machine and you don’t really seem bothered by that or at the very least you gloss over it. Have you audited every other instance to ensure they’re not also capable of generating keys/decrypting data? From my knowledge of this, the client in question was PagerDuty who alerted you after their own intrusion detection system picked up on the login. By your own account the initial illegal access looked like a legitimate login to your systems and didn’t raise any alarms. You also state that you don’t inspect customers instances without probable cause. So we have to assume that there might be other malicious software running in your infrastructure that you are not aware of and it’s allowing access that isn’t raising alerts.

    You say that only three customers were accessed under suspicious circumstances. On that face of it that looks like a small number, considering you have a large client base. However, from what I can gather these were large and notable customers PagerDuty and WPEngine, I believe. That, to me sounds less like a percentage risk and more like plucking high value targets. I’m only a small customer so it’s probably more out of luck that I haven’t been affected rather than my details not actually being available.

    Linode has offered a product that’s very valuable to me and my business. It’s provided reliable hosting and features. I chose them because I felt they would be able to support any application that I need to grow without the fuss of moving providers. I no longer have that confidence. The previous attack against Linode resulted in credit card loss and it’s only now that you are looking at tokenizing credit cards and moving to bcrypt for hashing?

    I do appreciate that resources get stretched and trying to pick out relevant data and act on it is really difficult in a growing business. But the lack of security awareness at Linode has got to a point not where I feel I can’t trust it with my business which is sad because my experience with them has been positive, well if you put aside data breaches, credit card loss and their private keys ending up on clients’ VPSs and inability to communicate.

  11. Author Photo

    “We also found commands in the bash history that successfully generated a one-time code”

    I don’t get how you saw this and the investigation concluded that “the security partner’s assessment of our infrastructure and applications did not yield a vector that would have provided this level of access.”

    I mean, I don’t understand why someone have a bash on your systems, how he achieved that and what changed so he can’t do it in the future

  12. Author Photo

    Just FYI, I’ve been forced to spend considerable ongoing time and money investigating other services and finally choosing a viable non-Linode. This is money that could have been spent on better things, even if it had just been more Linode servers. Outside 3-4 work weeks redirected, my computing budget doubled even after whittling down my 4 Linodes to two.

    You might consider joining forces with a cooperative and reputable industry counterpart in an effort to provide more viable business recovery scenarios for your mutual customers. In my case, now I have both a dedicated server vendor and Linode, a solution that is not neither pleasant nor economical. Each has complementary benefits.

    I hope that your security efforts prove successful and I concur with the comments that should you change the inside workings of the Linode manager, it should remain simple and shun any feature that is only cosmetic.

  13. Author Photo

    I agree with the poster above that Linode appears to be going down a path of greater transparency. I’m extremely happy to see this.

    I also believe that full disclosure and admitting fault where necessary is a very honorable thing, and you are to be commended for what you’ve said here.

  14. Author Photo

    Odd, all this transparency is making some people think there is a lack of security knowledge at Linode. Guys, you’d have this or worse at practically any other company.

    Sounds like almost this entire thing boiled down to a few customers who have no clue about security to begin with. Weak passwords and a mobile device that doesn’t have a screen code to lock the phone. Sigh, sorry Linode had to go through all of that because of a few lazy people, but it does look like they’ve learned a lot and are improving and moving forward.

    Kneejerk reacting will only put you with someone else, that probably isn’t doing the same thing as Linode.

    Keep up the great works guys and I’m glad to see the improvements.

  15. Author Photo

    Well done, Linode!

  16. Author Photo

    If you are going to update the Linode Manager API, *please, please, please* give us the ability to do programmatic snapshots.

    Thank you.

  17. Author Photo

    I greatly appreciate the explanation and transparency. So very different than other companies. This is the kind of thing that creates customer loyalty.

댓글 남기기

이메일 주소는 게시되지 않습니다. 필수 필드가 표시됩니다 *