1P by GN⁺ 4시간전 | ★ favorite | 댓글 1개
  • CISA 계약자가 운영한 공개 Private-CISA 저장소가 고권한 AWS GovCloud 계정과 내부 시스템 자격 증명을 노출함
  • GitHub 계정에는 비밀 정보 게시를 막는 기본 설정을 비활성화한 흔적과 평문 비밀번호, 토큰, 로그가 포함됨
  • 노출 파일 importantAWStokens에는 AWS GovCloud 서버 3개의 관리자 자격 증명이, CSV에는 내부 시스템 로그인 정보가 들어 있었음
  • Seralys는 노출 키가 높은 권한으로 인증 가능했고, 내부 artifactory 접근은 패키지 백도어와 횡적 이동 위험을 키운다고 봄
  • CISA 통보 직후 계정은 오프라인이 됐지만 AWS 키는 이후 48시간 더 유효했고, CISA는 침해 징후는 없다고 밝힘

공개 GitHub 저장소에 노출된 CISA 내부 자격 증명

  • CISA 계약자가 운영하던 공개 GitHub 저장소가 여러 고권한 AWS GovCloud 계정과 CISA 내부 시스템 자격 증명을 노출함
  • 저장소 이름은 Private-CISA였고, CISA가 내부에서 소프트웨어를 빌드, 테스트, 배포하는 방식과 관련된 파일까지 포함돼 있었음
  • 저장소에는 클라우드 키, 토큰, 평문 비밀번호, 로그, 기타 민감한 CISA 자산이 대량으로 들어 있었음
  • GitGuardian의 Guillaume Valadon은 공개 코드 저장소를 지속적으로 스캔해 노출된 비밀 정보를 탐지하고 계정 소유자에게 자동 알림을 보내는 과정에서 이 저장소를 발견함
  • Valadon은 저장소 소유자가 응답하지 않았고 노출 정보가 매우 민감해 KrebsOnSecurity에 연락함

GitHub 비밀 탐지 비활성화와 주요 노출 파일

  • Valadon은 이번 CISA 자격 증명 노출을 열악한 보안 위생의 전형적인 사례로 봄
  • 문제의 GitHub 계정 커밋 로그에는 CISA 관리자가 공개 코드 저장소에 SSH 키나 다른 비밀 정보를 게시하지 못하도록 막는 GitHub 기본 설정을 비활성화한 흔적이 있었음
  • Valadon은 “CSV에 평문으로 저장된 비밀번호, Git에 들어간 백업, GitHub 비밀 탐지 기능을 비활성화하는 명시적 명령”이 있었다고 전함
  • 노출된 파일 importantAWStokens에는 Amazon AWS GovCloud 서버 3개의 관리자 자격 증명이 포함돼 있었음
  • 또 다른 파일 AWS-Workspace-Firefox-Passwords.csv에는 수십 개 CISA 내부 시스템의 평문 사용자 이름과 비밀번호가 들어 있었음
  • Philippe Caturegli에 따르면 해당 시스템에는 기관의 보안 코드 개발 환경인 “Landing Zone DevSecOps”의 약자로 보이는 LZ-DSO도 포함돼 있었음

높은 권한과 내부 시스템 접근 위험

  • 보안 컨설팅 회사 Seralys 창업자 Philippe Caturegli는 AWS 키가 아직 유효한지와 노출 계정이 어떤 내부 시스템에 접근할 수 있는지만 확인했다고 밝힘
  • Caturegli는 노출된 자격 증명이 AWS GovCloud 계정 3개에 높은 권한 수준으로 인증될 수 있음을 검증함
  • 아카이브에는 CISA 내부 artifactory의 평문 자격 증명도 포함돼 있었음
  • 해당 artifactory는 CISA가 소프트웨어를 빌드하는 데 사용하는 코드 패키지 저장소이며, 공격자가 CISA 시스템에서 지속적인 거점을 확보하려 할 때 매력적인 대상이 될 수 있음
  • Caturegli는 이 위치가 횡적 이동에 매우 적합하며, 소프트웨어 패키지에 백도어를 심으면 이후 새로 빌드되는 소프트웨어마다 백도어가 배포될 수 있다고 봄

저장소 사용 방식과 관리 주체

  • Caturegli는 이 GitHub 계정이 정리된 프로젝트 저장소라기보다 개인 작업자가 작업용 메모장이나 동기화 수단으로 사용한 패턴에 가깝다고 봄
  • CISA 관련 이메일 주소와 개인 이메일 주소가 모두 사용돼, 서로 다르게 구성된 환경에서 저장소가 쓰였을 가능성이 있음
  • Caturegli는 사용 가능한 Git 메타데이터만으로는 어떤 엔드포인트나 장치가 쓰였는지 입증할 수 없다고 밝힘
  • GitHub 계정과 노출된 비밀번호를 검토한 결과, Private-CISA 저장소는 버지니아주 덜레스의 정부 계약업체 Nightwing 직원이 관리한 것으로 나타남
  • Nightwing은 논평을 거부하고 문의를 CISA로 돌림

CISA의 대응과 노출 기간

  • CISA 대변인은 기관이 보고된 노출을 인지하고 있으며 상황을 계속 조사 중이라고 밝힘
  • CISA는 현재 이 사건으로 민감한 데이터가 침해됐다는 징후는 없다고 밝힘
  • CISA는 팀 구성원에게 높은 수준의 청렴성과 운영 인식을 요구하며, 재발 방지를 위한 추가 보호 조치를 마련 중이라고 밝힘
  • CISA는 데이터 노출의 잠재적 기간에 관한 질문에는 응답하지 않음
  • Caturegli에 따르면 Private-CISA 저장소는 2025년 11월 13일 생성됐고, 해당 계약자의 GitHub 계정은 2018년 9월 생성됨
  • KrebsOnSecurity와 Seralys가 CISA에 노출 사실을 알린 직후 Private-CISA 저장소가 포함된 GitHub 계정은 오프라인 상태가 됨
  • Caturegli는 노출된 AWS 키가 이후에도 설명하기 어렵게 48시간 더 유효했다고 밝힘

쉬운 비밀번호와 침해 확산 위험

  • 폐쇄된 Private-CISA 저장소에는 여러 내부 리소스에 대해 쉽게 추측 가능한 비밀번호가 사용된 흔적도 있었음
  • 다수의 자격 증명은 각 플랫폼 이름 뒤에 현재 연도를 붙인 형태의 비밀번호를 사용함
  • Caturegli는 이런 관행이 외부에 노출되지 않았더라도 어떤 조직에서든 심각한 보안 위협이 될 수 있다고 봄
  • 공격자는 표적 시스템에 최초 접근을 확보한 뒤 내부 네트워크에 노출된 핵심 자격 증명을 이용해 접근 범위를 넓히는 경우가 많음
  • Caturegli는 해당 CISA 계약자가 2025년 11월부터 이 저장소에 정기적으로 커밋해 온 점을 근거로, 업무용 노트북과 집 컴퓨터 사이에서 파일을 동기화하려고 GitHub를 사용했을 가능성을 제기함
  • Caturegli는 어떤 회사에도 당혹스러운 유출이지만, 이번 경우는 CISA이기 때문에 더 문제가 크다고 봄

조직적 배경

  • CISA는 현재 정상 예산과 인력 수준의 일부만으로 운영 중임
  • CISA는 두 번째 Trump 행정부 시작 이후 인력의 거의 3분의 1을 잃었음
  • 해당 인력 감소는 기관 여러 부문에서 조기 퇴직, buyout, 사직을 강제한 결과로 설명됨
  • 관련 보도: CISA has lost nearly a third of its workforce

댓글과 토론

Hacker News 의견들
  • Valadon이 연락한 이유가 소유자가 응답하지 않았고 노출된 정보가 매우 민감했기 때문이라는데, CISA 하청업체가 자격 증명을 유출한 것도 말이 안 되지만 통보받고도 응답하지 않은 건 더 심각함
    게다가 AWS-Workspace-Firefox-Passwords.csv에는 CISA 내부 시스템 수십 개의 평문 사용자명과 비밀번호가 들어 있었다고 함
    CISA가 축소되는 상황은 이해하고 안타깝지만, 약한 비밀번호가 든 passwords.csv는 변명의 여지가 없는 무능이고 비밀번호 관리자에는 큰 예산도 필요 없음

    • 찾는 표현은 중대한 과실
    • 이 사람을 옹호하려는 건 아니지만, GitHub를 파일 동기화 도구처럼 쓴 정황이 뚜렷함
      Firefox-passwords.htmlfirefox-bookmarks.html은 새 컴퓨터로 옮기기 전에 내보내고 다시 가져오던 파일이고, Firefox 동기화가 있기 전의 오래된 방식이었음
      기사에도 나오지만 따로 짚을 만큼 눈에 띔
    • 한쪽에서는 CISA가 축소되고 있는데, 다른 한쪽에서는 사이버보안, 국가 이익, 핵심 인프라에 대한 수사가 계속 커지고 있음
    • CISA에 있던 지인 대부분이 2025년 1~3월 DOGE 캠페인 때 정리됐음
      “20대인 우리가 네가 뭘 하는지 모르겠으니 해고” 식으로 사전 통보도 없었음
      Diebold 투표 시스템 보안 취약성과 해외 임플란트 해킹을 다루던 팀도 사라짐
    • 처음으로 신고한 “해킹”이 고등학교 컴퓨터 네트워크에서 평문 비밀번호 파일을 찾은 일이었고, 그게 1987년이었음
      세상이 바뀌어도 그대로인 건 그대로임
  • 사람들이 과소평가하는 것 중 하나가, 저장소 안 디스크에 .env나 비밀값을 두고 커밋만 안 한 상태에서 OpenAI, Anthropic, OpenRouter로 대량의 비밀값을 넘기는 일이라고 봄
    LLM은 전체 파일을 기꺼이 읽고 이후 ChatGPT 학습 데이터로 보내면서 아무 경고도 띄우지 않을 수 있음
    환경 변수가 다 설정됐는지, 앱의 데이터베이스 비밀번호가 준비됐는지 확인하는 건 겉보기엔 정상 작업이기 때문임
    이제 조직들은 디스크나 로그에 저장된 비밀값을 감사하고 교체해야 하며, 필요한 순간 외에는 평문으로 두지 않도록 SOPSVault 같은 도구로 옮겨야 함

    • 이 문제는 생각보다 훨씬 저평가돼 있음
      유출 경로는 보통 “비밀값을 커밋했다”가 아니라, “에이전트가 답변 중 .env를 읽고 값을 분석에 그대로 포함했고, 그 프롬프트와 완성이 학습 데이터나 누군가의 캐시 적중으로 들어갔다”에 가까움
      실제 비밀값이 있는 프로젝트에서는 .aiignore.claudeignore.env, credentials/, .pem을 넣고, 프로젝트별 지침 파일에 “요청받아도 .env 파일을 읽지 말라”고 적고, 비밀값은 디스크가 아니라 1Password나 키체인에서 프로세스 시작 시 환경 변수로 주입하게 만들었음
      더 큰 문제는 “.gitignore를 존중하라”가 잘못된 추상화라는 점임
      비공개 저장소에는 커밋해도 LLM API로 흘러가면 안 되는 파일이 많고, 두 집합은 같지 않음
    • 공정하게 말하면 개발 트리의 .env 파일에는 아주 중요한 비밀값이 있으면 안 됨
      제한된 접근권의 개발용 비밀값이어야 하고, OpenAI 개발 환경처럼 “운영” 시스템으로 이어지는 값도 가능하면 권한을 제한해야 함
      유출뿐 아니라 테스트와 개발 중 실수로 시스템에 서비스 거부를 일으키거나 잘못된 요청을 보내기도 쉬움
      누군가 테스트 자동화를 작업하다가 실수로 실제 결과 수천 개를 보내서 1천 달러 청구서를 받는 상황은 피해야 함
    • 동의함. 장기 고정 자격 증명은 실제 문제임
      AWS와 다른 대형 클라우드들이 여기서 벗어날 도구를 만들고, 부드럽거나 꽤 강한 유도까지 제공하는 건 칭찬할 만함
      하지만 모두가 필요한 수준에 도달한 건 아님
      예를 들어 Railway는 역할/OIDC로 AWS 리소스에 접근하게 해주지 않아서 티켓을 냈지만 아직 움직임을 못 봤음
      0: https://station.railway.com/feedback/allow-for-integration-w...
    • 더 이상 dotenv 파일을 평문으로 두지 않음
      sops로 암호화된 환경 파일을 유지하고, direnv 같은 도구로 작업 중 셸에서 사용할 수 있게 함
      물론 LLM이 이 비밀값을 출력할 수도 있지만 가능성은 낮아짐
      게다가 적어도 Claude는 dotenv를 읽는 걸 피하려는 편이고, 마지막으로 로컬 비밀값 자체를 그렇게 중요하게 만들지 말아야 함
      제한된 범위, 개발 계정 등을 써야 함
    • 최근 보니 적어도 Claude는 환경 파일을 읽지 않으려고 꽤 노력함
      예를 들어 데이터베이스를 읽고 접근하게 하려면 프롬프트에서 꽤 강하게 밀어붙여야 함
  • 2026년에 정부 자격 증명을 저장소에 보관하고 이를 잡아낼 스캐너도 없다면 조사를 받아야 함
    전문 직무에서 이런 일을 하는 사람은 매우 의심스럽게 봄
    외국 정보기관에서 이걸 봤다면 먼저 허니팟이라고 생각했을 것 같고, 너무 노골적이라 상상력 없는 함정이라고 봤을 듯함

    • 정부에서 유능한 사람들을 전부 해고해둬서 다행이네
    • DOGE가 미국 정부 직원 전체나 사회보장번호 전체처럼 미국 정부 데이터를 빼내려 했다는 건 이미 알고 있음
      예전 행정부였다면 CISA가 미끼 작전을 하는 거라고 봤겠지만, 이번 행정부의 부패와 무능, CISA 대량 해고까지 생각하면 그냥 진짜 실수일 수도 있음
  • 민감한 문서도 ChatGPT에 업로드했음 [1]
    [1] https://www.politico.com/news/2026/01/27/cisa-madhu-gottumuk...

    • 그 기사를 읽어보면 Trump/Noem이 자리에 외국 첩자들을 채운 것처럼 보임
      언젠가 미국 국민이 책임을 물을 날이 올 것임
  • 아이러니하게도 그 AWS 키로 더 안전한 여러 AWS 서비스를 쓸 수 있었음
    예를 들면 S3, 가능하면 KMS를 붙인 S3, Parameter Store, EBS, EFS, AWS Secrets Manager, 또는 그냥 KMS로 파일을 직접 암호화하는 방식이 있음
    사실 KMS를 지원하고 서비스 주체에 키 접근 권한을 줄 필요가 없는 AWS 서비스라면 무엇이든 가능함

  • 이 일이 6~7개월이나 계속됐다는 점이 놀라움
    GitGuardian 같은 업체나 trufflehog 등을 쓰는 개인 연구자들이 유출된 키를 며칠 안에 찾을 줄 알았음
    GitHub가 크게 성장해서 스캐너들이 따라가지 못하는 걸 수도 있음

  • 저장소 이름이 말 그대로 Private-CISA였음
    private, internal 같은 단어가 들어간 저장소 이름을 찾고, 저장소 이름에 보통 등장할 것 같지 않은 정부기관이나 비기술 기업 이름을 찾으면 재미있을 듯함
    전부 복제한 뒤 LLM으로 빠르게 흥미로운 내용이 있는지 훑게 할 수도 있음
    그런데 GitHub에는 AWS 자격 증명처럼 기본적인 것에 대한 자동 스캐너가 있지 않나?

    • 켜둔 경우에만 그렇다. 기사에 따르면 이 사용자는 그 기능을 꺼뒀음
  • 정말 안타까운 건 연방정부가 수십 년 전부터 스마트카드 기반 인증인 CAC를 갖고 있었다는 점임
    하지만 공개 인터넷 스택이 비밀번호 위에서 돌아가다 보니, 정부 인프라도 결국 비밀번호를 쓰게 됨