CircleCI – 코드 구축 서비스가 전체 자격 증명 손상을 입음

CircleCI – 코드 구축 서비스가 전체 자격 증명 손상을 입음

CircleCI – 코드 구축 서비스는 완전한 자격 증명 손상을 겪습니다. PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

취미로 코딩하든 전문적으로 코딩하든 프로그래머라면 프로젝트의 새 버전, 즉 자신이나 친구 또는 고객이 실제로 설치할 공식 "릴리스" 버전을 생성한다는 사실을 알게 될 것입니다. 그리고 사용 – 항상 약간의 화이트 너클 타기입니다.

결국 릴리스 버전은 모든 코드에 의존하고 모든 기본 설정에 의존하며 게시된 문서에만 의존하고(그러나 내부 지식은 없음) 이전에 본 적이 없는 컴퓨터에서도 작동해야 합니다. 호환성을 테스트한 적이 없는 다른 소프트웨어와 함께 상상하지 못한 구성입니다.

간단히 말해서, 프로젝트가 더 복잡해지고 더 많은 개발자가 작업하고 다른 모든 요소와 원활하게 작동해야 하는 개별 구성 요소가 더 많아집니다.

... 전체가 부분의 합보다 훨씬 덜 인상적일 가능성이 더 높습니다.

조잡한 비유로, 가장 빠른 개인 100m 스프린터를 보유한 트랙 팀이 4x100m 계주에서 항상 우승하는 것은 아니라는 점을 고려하십시오.

구출 CI

이러한 종류의 "하지만 내 컴퓨터에서는 잘 작동했습니다" 위기를 피하기 위한 한 가지 시도는 전문 용어로 알려진 기술입니다. 지속적인 통합CI 짧게.

아이디어는 간단합니다. 누군가가 프로젝트의 일부를 변경할 때마다 그 사람의 새 코드를 가져와 전체 빌드 및 테스트 주기를 통해 사용자와 새 코드를 최종 릴리스를 생성하기 전에 하는 것처럼 휘젓습니다. 버전.

일찍 빌드하고, 자주 빌드하고, 모든 것을 빌드하고, 항상 빌드하십시오!

분명히 이것은 물리적 세계의 프로젝트가 감당할 수 없는 사치입니다. 예를 들어 시드니 하버 브리지를 건설하는 경우 매번 완전히 새로운 원자재로 전체 테스트 범위를 재건할 수 없습니다. 리벳팅 프로세스를 조정하거나 정상에 더 큰 깃대를 설치할 수 있는지 확인하기로 결정하십시오.

한 묶음의 소스 파일에서 출력 파일 모음으로 컴퓨터 소프트웨어 프로젝트를 "구축"하는 경우에도 전기와 같은 귀중한 리소스를 소비하고 개발자가 사용하는 모든 컴퓨터와 함께 실행하려면 컴퓨팅 성능이 갑자기 급증해야 합니다. 스스로 사용하고 있습니다.

결국 CI를 사용하는 소프트웨어 엔지니어링 프로세스에서 아이디어는 모든 사람이 준비될 때까지 기다리지 않고 모든 사람이 프로그래밍에서 물러나 최종 빌드가 완료될 때까지 기다리는 것입니다.

빌드는 하루 종일, 매일 이루어지므로 코더는 실수로 다른 모든 사람에게 부정적인 영향을 미치는 "개선 사항"을 만들었는지 미리 알 수 있습니다. 빌드 깨기, 전문 용어가 말할 수 있듯이.

아이디어는 일찍 실패하고, 신속하게 수정하고, 품질을 높이고, 예측 가능한 진행을 하고, 제 시간에 배송하는 것입니다.

물론 성공적인 테스트 빌드 후에도 새 코드에는 여전히 버그가 있을 수 있지만 적어도 개발 주기가 끝날 때까지는 모든 사람이 처음부터 다시 시작해야 한다는 사실을 알지 못할 것입니다. 다양한 구성 요소가 정렬되지 않았기 때문에 소프트웨어를 빌드하고 작동할 수 없습니다.

초기 소프트웨어 개발 방법은 종종 다음과 같이 언급되었습니다. 폭포 모델, 프로젝트가 버전 기한 사이에 부드럽게 흘러가는 동안 모든 사람이 조화롭게 그러나 독립적으로 작업했으며 주기가 끝날 때까지 모든 것이 모여 새 릴리스를 만들고 버전 업그레이드의 소란스러운 폭포수를 뛰어 넘을 준비가 되어 다른 버전으로 나타날 때까지 추가 설계 및 개발을 위한 맑은 물 하류의 부드러운 기간. 그러나 이러한 "폭포"의 한 가지 문제는 중력에도 불구하고 폭포의 바로 가장자리에서 끝없는 원형 소용돌이에 갇히게 되는 경우가 많다는 것입니다. 수정 (및 수반되는 오버런)으로 인해 앞으로의 여정이 가능해졌습니다.

클라우드를 위한 작업

상상할 수 있듯이 CI를 채택한다는 것은 개발자가 빌드 및 테스트 절차를 트리거할 때마다 즉시 사용할 수 있는 강력하고 바로 사용할 수 있는 여러 서버를 보유하는 것을 의미합니다. 폭포의 입술” 상황.

그것은 클라우드를 위한 일처럼 들립니다!

그리고 실제로 수많은 소위 CI/CD 클라우드 서비스(이 CD 재생 가능한 음악 디스크는 아니지만 지속적인 배달) 서로 다른 제품의 다양한 분기가 서로 다른 하드웨어에서 동시에 다르게 구성된 빌드를 거치는 유연성을 제공합니다.

서클CI 그러한 클라우드 기반 서비스 중 하나입니다…

…하지만 불행하게도 고객에게는 위반을 당했다.

기술적으로, 그리고 요즘 흔히 볼 수 있는 것처럼 회사는 공식 통지의 어느 곳에서도 실제로 "위반", "침입" 또는 "공격"이라는 단어를 사용하지 않았습니다. 보안 사고.

원래 주의 [2023-01-04]는 간단히 다음과 같이 말했습니다.

현재 보안 사고를 조사 중이며 조사가 진행 중임을 알려드리고자 합니다. 이 사건에 대한 업데이트와 답변이 제공되는 대로 알려드리겠습니다. 이 시점에서 우리는 우리 시스템에 승인되지 않은 행위자가 활동하지 않는다고 확신합니다. 그러나 많은 주의를 기울여 모든 고객이 귀하의 데이터를 보호하기 위해 특정 예방 조치를 취하기를 원합니다.

무엇을해야 하는가?

그 이후로 CircleCI는 정기적인 업데이트와 추가 조언을 제공했으며 이는 주로 다음과 같이 요약됩니다.CircleCI에 저장된 모든 비밀을 교체하십시오.”

이전에 설명했듯이 전문 용어는 회전 가 잘못 선택된 이유는 사람들이 문자 그대로 적은 수의 예측 가능한 선택을 통해 암호와 비밀을 "순환"했던 위험한 과거의 유산이기 때문입니다. 그 당시에는 새로운 암호를 추적하는 것이 더 어려웠을 뿐만 아니라 사이버 보안이 오늘날만큼 중요합니다.

CircleCI가 의미하는 바는 아마도 네트워크를 침입한 공격자가 귀하의 것을 훔쳤거나 그렇지 않다는 것을 증명할 수 없기 때문에 모든 암호, 비밀, 액세스 토큰, 환경 변수, 공개-개인 키 쌍 등을 변경해야 한다는 것입니다. 그들을 훔쳤다.

이 회사는 목록 제공 위반의 영향을 받은 다양한 종류의 개인 보안 데이터에 대한 CircleCI-Env-검사기 환경에서 변경해야 하는 모든 CI 암호의 JSON 형식 목록을 내보내는 데 사용할 수 있습니다.

또한 사이버 범죄자는 이제 자신의 네트워크로 돌아갈 수 있는 액세스 토큰과 암호화 키를 가질 수 있습니다. 특히 CI 빌드 프로세스는 때때로 사용자가 원하지 않거나 원하지 않는 코드나 데이터를 요청하기 위해 "콜홈"해야 하기 때문입니다. 클라우드에 업로드(이 작업을 수행하는 스크립트는 전문 용어로 다음과 같이 알려져 있음) 주자).

따라서 CircleCI는 다음과 같이 조언합니다.

또한 고객은 2022년 12월 21일[2023년 01월 04일까지]부터 또는 [비밀 변경] 완료 시 시스템의 내부 로그에서 무단 액세스를 검토할 것을 권장합니다.

흥미롭게도 일부 고객은 이 위반이 시작된 CircleCI가 암시한 날짜[2022-12-21]가 블로그 게시물과 일치한다는 점에 주목했습니다. 회사 출판 최근 안정성 업데이트에 대해.

고객은 "이번 업데이트에서 도입된 버그와 관련된 위반이 있었습니까?"를 알고 싶어했습니다.

회사의 신뢰성 업데이트 기사가 특정 날짜에 개별 변경 사항을 발표하는 것이 아니라 롤링 뉴스 요약처럼 보이는 것을 감안할 때 분명한 대답은 "아니오"입니다…

… 그리고 CircleCI는 신뢰성 블로그 게시물의 2022-12-21이라는 우연의 일치 날짜가 그저 우연의 일치라고 밝혔습니다.

즐거운 열쇠 재생!


타임 스탬프 :

더보기 노출 된 보안