슬롭스쿼팅이란 무엇이며 어떻게 피할 수 있나요

컴퓨터 화면의 코드.

이 불쾌한 용어를 본 적이 있다면, 슬롭스쿼팅이 무엇인지, 그리고 그것이 당신에게 어떤 영향을 미칠 수 있는지 궁금할 것입니다. 이 끔찍한 공격은 쉽게 발견할 수 있는 것이 아니지만, 당신을 더 안전하게 지키기 위해 피할 수 있는 방법이 있습니다.

슬롭스쿼팅이란 무엇인가요

모든 것은 AI 환각에서 시작됩니다. AI가 만들어내는 것들입니다. 슬롭스쿼팅의 목적을 위해, AI 도구는 개발자가 코드에서 사용할 수 없는 오픈 소스 패키지를 제안합니다.

사이버 범죄자들은 AI 환각이 자주 반복된다는 것을 발견했습니다. 그들은 이러한 결함을 이용하여 환각된 이름을 사용하여 악성 패키지를 만들고 이를 GitHub와 같은 신뢰할 수 있는 코드 저장소 호스트에 업로드합니다. 개발자가 좋아하는 AI 플랫폼에 오픈 소스 패키지를 제안해 달라고 요청하면, 챗봇은 사이버 범죄자들이 사용하는 환각된 이름 중 하나를 제안합니다.

ChatGPT에 코드 패키지 제안을 요청하는 모습.

결과적으로 개발자들은 이러한 악성 패키지를 소프트웨어에 삽입하게 됩니다. 코드가 실행되면 피해가 발생하고 공격자는 코드가 실행되는 모든 장치에 접근하게 됩니다.

이것이 큰 문제처럼 들리지 않을 수 있지만, 한 연구에 따르면 16개의 주요 코드 생성 AI 모델 중 거의 20%의 추천 패키지가 존재하지 않았습니다. 더 나쁜 것은 43%의 환각된 패키지 이름이 동일한 프롬프트로 10번 실행할 때마다 반복된다는 것입니다. 이는 사이버 범죄자들이 이름을 선택하고 그들의 악성 패키지가 반복적으로 제안되고 사용되도록 훨씬 쉽게 만듭니다.

연구에서 CodeLlama가 가장 나쁜 범죄자로 나타났습니다. 반면, GPT-4 Turbo는 가장 적은 환각을 보였습니다. 위험이 적다고 해서 당신이 완전히 안전하다는 것은 아닙니다.

주의해야 할 사항들

당신이 전문 개발자이든, 일반 개발자이든, 완전 초보자이든 슬롭스쿼팅의 위험에 처해 있습니다. 이는 실제로 타이포스쿼팅의 한 형태로, 합법적이고 안전한 도메인과 악성 도메인 사이의 유일한 차이가 한 글자라는 것입니다. 그러나 타이포스쿼팅과 마찬가지로 슬롭스쿼팅은 다음 다섯 가지를 주의하면 피할 수 있습니다:

  1. 약간 잘못된 패키지 이름 – 이 경고 신호는 보장할 수는 없지만, 대부분의 환각된 패키지 이름에는 오타가 없습니다. 그래도 잘못된 철자를 발견하면 사용하기 전에 두 번 생각해 보세요.
  2. 논의나 피드백 부족 – 논의가 거의 없는 패키지는 사용하기에 가장 안전하지 않을 수 있습니다. 이는 단순히 새로 출시된 것일 수도 있고, 개발자가 찾고 무심코 사용할 수 있도록 AI 제안에 의존하는 가짜 패키지일 수도 있습니다.
  3. 다른 개발자들의 경고 – AI의 제안에 의존하기 쉽지만, 잠시 시간을 내어 추가 조사를 해보세요. 좋아하는 검색 엔진을 사용하여 패키지 제안에 대해 다른 사람들이 뭐라고 하는지 확인한 후 사용하세요.
  4. 다른 플랫폼에서 추천되지 않음 – 가능하다면 여러 AI 코딩 플랫폼에서 동일하거나 유사한 프롬프트를 시도해 보세요. 패키지가 거의 추천되지 않거나 전혀 추천되지 않는다면, 이는 슬롭스쿼팅의 주요 신호일 수 있습니다.
  5. 혼란스러운 설명 – 개발자들이 “바이브 코딩”에 의존하는 경우가 점점 더 많아지고 있습니다. 이는 그들이 제안을 검증하지 않고 수용하는 것을 의미합니다. 그러나 악성 패키지는 종종 호스팅된 사이트에서 혼란스러운 설명을 가지고 있습니다.

또한 좋아하는 AI 플랫폼에 목록을 요청하여 이미 확인된 일반 슬롭스쿼팅 패키지를 피할 수 있습니다.

ChatGPT에서의 슬롭스쿼팅 패키지 목록.

가장 중요한 예방 조치

무엇을 찾아야 할지 알고 있더라도, 슬롭스쿼팅은 여전히 많은 경우에 발견하기 어렵습니다. 너무 새롭기 때문에 보안 전문가들이 악성 패키지를 식별하고 제거하는 신뢰할 수 있는 프로세스를 개발하는 데 시간이 걸릴 것입니다. 많은 AI 플랫폼도 환각된 이름/패키지를 인식하고 사용하기 전에 개발자에게 경고하도록 모델을 훈련하려고 하고 있습니다.

이런 일이 일어나기 전까지는, 악성 패키지가 당신의 소프트웨어와 설치될 수 있는 장치를 망치지 않도록 예방할 수 있는 세 가지 방법이 있습니다.

가장 중요한 것은 항상 안전한 샌드박스 환경에서 코드를 실행하는 것입니다. VirtualBox와 VMWare는 가장 인기 있는 가상 머신 중 두 가지이며 무료로 사용할 수 있습니다. 클라우드 기반 샌드박스 환경도 있지만, 대부분은 몇 가지 언어만 지원합니다. Replit은 50개 이상의 언어를 지원하여 인기가 많습니다.

두 번째는 패키지가 안전한지 여부를 확인하기 위해 스캐닝 도구를 사용하는 것입니다. Socket Web Extension이 사용하기 가장 쉬운 옵션 중 하나라고 생각합니다. 무료로 사용할 수 있으며 다운로드하기 전에 여러 사이트를 스캔합니다. 현재 Chrome 기반 브라우저와 Firefox에서 사용할 수 있습니다.

Microsoft가 Teams를 데스크탑 업데이트 메뉴에서 차단하는 방법

마지막으로 AI가 제안하는 모든 것을 항상 검증하세요. AI에 의존할수록 사이버 범죄자들이 이를 이용하기가 더 쉬워집니다. 코딩을 도와주기 위해 AI를 사용하되, 사용하기 전에 모든 제안을 검증하세요.

슬롭스쿼팅의 피해자가 된다면 다른 개발자들에게 알려주세요. 소셜 미디어, Reddit 및 저장소 호스트에 경고를 게시하세요. 사용하는 AI 플랫폼의 지원팀에 연락하여 악성 패키지 이름을 신고하여 AI 모델을 더 잘 훈련하는 데 도움을 주세요. 정보를 공유하면 다른 사람들이 스스로를 보호하는 데 도움이 됩니다.