2023년 3월 20일, OpenAI는 몇 시간 동안 인기 있는 생성 AI 도구 ChatGPT를 다운시켰는데, 이후 운영 중단 원인이 오픈소스 인메모리 데이터스토어 라이브러리 '레디스'에서 비롯된 소프트웨어 공급망 취약점이라고 인정했습니다
이 취약성으로 인해 사용자가 실수로 다른 사용자의 채팅 기록 제목에 액세스하여 이름, 이메일 주소, 결제 주소, 신용 카드 유형 및 결제 카드 번호의 마지막 네 자리와 같은 결제 관련 정보를 노출할 수 있는 시간대가 발생했습니다.
이는 비교적 경미한 버그로, 빠르게 포착되어 패치가 적용되었습니다. ChatGPT 및 기타 생성적인 LLM의 인기 상승을 고려할 때, 보다 표적화된 소프트웨어 공급망 공격의 결과는 무엇일까요?
이 글에서는 3월 20일에 정확히 무슨 일이 일어났고 사용자 정보는 어떻게 노출되었는지 알아보겠습니다. 또한 더 심각한 잠재적 공격에 대한 짧은 상상의 여행을 통해 어떤 정보가 노출될 수 있으며 이러한 경우를 방지하는 데 도움이 되는 조치가 무엇인지 알아보겠습니다. 귀사가 어떤 소프트웨어를 개발하고 있는지에 관계없이 관련이 있을 수 있는 몇 가지 일반적인 소프트웨어 공급망 보안 제안을 끝으로 마치겠습니다.
일어난 일
다른 거의 모든 소프트웨어 회사와 마찬가지로 OpenAI의 코드는 오픈 소스 라이브러리와 코드에 적지 않게 의존합니다. 이 경우 이 버그는 Redis 클라이언트 오픈 소스 라이브러리 redis-py에서 발견되었습니다. 회사 자체 재검표에 나와 있는 버그에 대한 설명은 다음과 같습니다:
OpenAI는 Redis를 사용하여 요청할 때마다 데이터베이스를 확인할 필요가 없도록 해당 서버의 사용자 정보를 캐시합니다.
Redis 클러스터는 여러 Redis 인스턴스에 이 로드를 분산하는 데 사용됩니다.
Redis-py 라이브러리는 Asyncio와 함께 실행되는 회사의 Python 서버에서 Redis와 인터페이스하는 데 사용됩니다.
라이브러리는 서버와 클러스터 간의 공유 연결 풀을 유지하고 연결을 재활용하여 한 번 수행한 후 다른 요청에 사용합니다.
Asyncio를 사용할 때 redis-py가 있는 요청과 응답은 두 개의 큐로 동작합니다. 발신자는 수신 큐에 요청을 푸시하고, 발신 큐에서 응답을 팝핑한 다음 연결을 풀로 반환합니다.
요청이 수신 큐에 푸시된 후 송신 큐에서 응답이 팝업되기 전에 취소되었다고 가정합니다. 이 경우에는 연결이 손상되고 관련 없는 요청에 대해 풀된 다음 응답은 연결에 남겨진 데이터를 수신할 수 있습니다.
대부분의 경우 복구할 수 없는 서버 오류가 발생하며, 사용자는 요청을 다시 시도해야 합니다.
그러나 경우에 따라 손상된 데이터가 요청자가 예상했던 데이터 유형과 일치하기 때문에 캐시에서 반환되는 데이터가 다른 사용자에게 속하더라도 유효한 것으로 보입니다.
3월 20일 월요일 태평양 시간 오전 1시, OpenAI는 실수로 서버에 변경 사항을 도입하여 Redis 요청 취소가 급증했습니다. 이로 인해 각 연결이 잘못된 데이터를 반환할 확률이 usual보다 높아졌습니다.
이 특정 버그는 Redis Cluster용 Asyncio redis-py 클라이언트에만 나타나 이후 OpenAI 엔지니어와 Redis 라이브러리 유지 관리자의 통합 작업으로 수정되었습니다.
이 버그는 다른 활성 사용자의 검색 제목 및 해당 사용자의 결제 정보의 일부를 실수로 노출시킬 수 있으며, 일부 사용자는 현재 개인 재정에 대한 전체 또는 부분적인 통제권을 ChatGPT에 부여하여 이 정보의 노출이 잠재적으로 재앙적인 결과를 초래할 수 있습니다.
일어날 수 있는 일
이 경우 오픈 소스 라이브러리 Redis에서 OpenAi가 물려받은 소프트웨어 공급망 버그는 비교적 단순하고 쉽게 패치될 수 있습니다. SolarWinds에 방문한 것과 유사한 타겟 소프트웨어 공급망 공격이 발생하고 상당 기간 동안 발견되지 않은 상태로 남아있는 더 심각한 시나리오를 상상해 보십시오. 예를 들어 몇 달 동안.
사용자가 LLM에 대한 보다 직접적인 액세스를 위해 OpenAI를 지불하고 있기 때문에 이러한 공격은 잠재적으로 지불 데이터를 포함하여 클라이언트의 정보를 노출시킬 수 있습니다. 그러나 이는 가상 해커 그룹이 관심을 가지는 정보가 아닙니다. ChatGPT는 현재 11억 6천만 명의 사용자를 가지고 있습니다. 2023년 3월에 10억 명을 돌파했습니다. 이 숫자는 2023년 2월부터 2023년 3월까지 거의 55%의 증가를 나타냅니다. 수많은 사람들이 이제 예술에서 역사 숙제, 재정에 이르기까지 모든 것에 생성 AI를 사용하고 있는 상황에서 OpenAI의 데이터베이스에 대한 제한 없는 액세스는 셀 수 없는 사용자들에 대한 잠재적인 협박 정보를 노출할 수 있습니다. 블랙 미러 에피소드 '닥치고 춤춰'(시즌 3, 에피소드 3, 2016)는 이러한 명백한 정보가 부도덕한 사람들의 손에 들어가는 길을 찾는 것에 꽤 좋은 상상의 결과를 제공합니다. 보다 실제적인 유사점을 찾고 있다면 2015년의 애슐리 매디슨 데이터 유출은 심각한 결과를 가져왔고, 그 중 일부는 수년이 지난 후에도 여전히 관련이 있습니다.
상상의 해킹에서 조금 더 나아가 이 이름 없는 해커 그룹이 OpenAI 데이터베이스에 접근할 수 있을 뿐만 아니라 요청 결과에도 영향을 미칠 수 있다고 이야기해 보겠습니다.
수백만 명의 사람들이 해커 집단에 의해 맞춤 제작된 금융관련 조언을 받을 수 있다는 가능성을 상상할 수 있습니까? 아니면 우리의 불가사의한 해커 집단으로부터 잘못된 보안 검색 정보나 코드 테스트 정보를 다시 얻을 수 있다는 가능성을 상상할 수 있습니까? ChatGPT가 이제 인터넷에 접속할 수 있게 되었다는 사실은 OpenAI의 서버에 들어가거나 나가는 정보를 일반적이고 무해한 데이터 그 이상으로 숨기는 것을 훨씬 쉽게 해줍니다. 여기까지 하겠습니다만 성공적인 LLM에 대한 소프트웨어 공급망 공격이 초래할 수 있는 엄청난 잠재적 피해를 보실 수 있을 것 같습니다.
자신과 소프트웨어 공급망을 보호하는 방법
자신을 보호하기 위해 할 수 있는 가장 먼저 할 수 있는 일 중 하나는 의심의 눈초리를 날카롭게 하는 것입니다. 도구가 하는 일, 잠재적으로 할 수 있는 일, 리소스에 액세스할 수 있는 모든 권한을 보장하지 않는 한 아무리 좋은 도구라도 암묵적으로 신뢰하지 마십시오. 오픈 소스 버전의 ChatGPT를 로컬에서 실행할 수 있는 옵션을 통해 교육 정보와 해당 도구가 가진 액세스 수준 모두에 더 많은 권한을 얻을 수 있습니다.
소프트웨어 공급망에서 발생하는 일에 대한 투명성을 높이고 파이프라인을 구축하는 것도 좋은 방법입니다. 각 빌드에 대해 SBOM으로 시작할 수 있지만, 이는 한 단계일 뿐이며, 서버, 클라우드 또는 네트워크에서 발생하는 일의 투명성을 높이기 위해 할 수 있는 다른 많은 일이 있습니다.
인공지능의 미래
인공지능은 무엇을 하든지 간에 머물러 있습니다. 일상 생활에 대한 그것의 관여 수준은 추측의 문제이지만, 지난 6개월 만으로 볼 때, LLM 기술과 그것의 사용에 대한 잠재적인 분수령을 보고 있는 것이 확실해 보입니다. 인공지능이 코드와 천으로 된 앱의 생성을 '자연어'에서 올바른 프롬프트를 찾는 문제로 삼으면서, 우리는 제대로 테스트되지 않은 애플리케이션이나 그 사용자와 그것을 생성한 사람들 또는 회사 모두를 보호할 수 있는 적절한 보안 보호 장치가 없는 전례 없는 홍수에 직면할 수 있습니다.
진정한 정보원이 화면 뒤에서 우리의 말을 듣고 있을 때까지, 자신의 보안에 대처할 다른 방법을 찾아야 합니다. 신뢰의 전조로서 가시성을 홍보하는 것이 훌륭한 출발점이라고 생각합니다.
'일상 > IT' 카테고리의 다른 글
LWC: 웹 개발 혁명을 이끄는 번개 웹 컴포넌트의 오픈 소스 역량 탐색 (0) | 2024.02.12 |
---|---|
개발자가 오픈 소스에 기여해야 하는 이유 (0) | 2023.12.17 |
웹 발전의 미래: 예측과 가능성 (0) | 2023.11.28 |
2023년 소매용 데이터 스트리밍 현황 (0) | 2023.11.23 |
2023년 공공부문 데이터 스트리밍 현황 (0) | 2023.11.18 |