PyTorch: 크리스마스부터 새해 PlatoBlockchain 데이터 인텔리전스까지 제공되는 기계 학습 툴킷입니다. 수직 검색. 일체 포함.

PyTorch: 크리스마스부터 새해까지 사용되는 기계 학습 툴킷

PyTorch는 가장 인기 있고 널리 사용되는 기계 학습 툴킷 중 하나입니다.

(우리는 경쟁 분야에서 널리 사용되는 많은 오픈 소스 도구와 마찬가지로 인공 지능 순위표의 어느 위치에 있는지에 대해 그리지 않을 것입니다. 대답은 당신이 누구에게 물어보고 그들이 어떤 툴킷을 사용하는지에 달려 있는 것 같습니다. 그들 자신.)

원래 페이스북(현 메타)이 오픈 소스 프로젝트로 개발 및 출시한 이 소프트웨어는 2022년 후반에 Linux 재단에 넘겨져 현재 PyTorch 재단의 보호 아래 실행되고 있습니다.

운수 나쁘게, 공급망 공격을 통해 프로젝트가 손상되었습니다. 크리스마스[2022-2022-12]와 새해 전날[25-2022-12] 사이의 30년 연말 연휴 기간 동안.

공격자는 악의적으로 다음과 같은 Python 패키지를 생성했습니다. torchtriton 인기 있는 Python Package Index 리포지토리인 PyPI에서.

이름 torchtriton PyTorch 시스템 자체의 패키지 이름과 일치하도록 선택되어 위험한 상황이 발생했습니다. PyTorch 팀에서 설명 (우리의 강조) 다음과 같이:

[A] 악성 종속성 패키지(torchtriton) [...]는 PyTorch 야간 패키지 인덱스에 제공되는 패키지 이름과 동일한 패키지 이름으로 PyPI(Python Package Index) 코드 저장소에 업로드되었습니다. PyPI 인덱스가 우선하므로, 이 악성 패키지는 공식 리포지토리의 버전 대신 설치되었습니다.. 이 설계를 통해 누군가 타사 색인에 있는 것과 동일한 이름으로 패키지를 등록할 수 있습니다. pip 기본적으로 해당 버전을 설치합니다.

프로그램 pip, 그건 그렇고, 예전에는 pyinstall, 그리고 분명히 재귀 농담입니다. pip installs packages. 원래 이름에도 불구하고 Python 자체를 설치하기 위한 것이 아닙니다. Python 사용자가 PyTorch 및 기타 널리 사용되는 도구와 같이 Python으로 작성된 소프트웨어 라이브러리 및 애플리케이션을 관리하는 표준 방법입니다.

공급망 트릭에 의해 소유

위험한 시기에 PyTorch의 개인 버전을 설치할 만큼 불행한 사람은 거의 확실하게 데이터 도용 악성 코드가 컴퓨터에 이식되었습니다.

PyTorch의 짧지만 유용한 악성코드 분석, 공격자는 감염된 시스템에서 다음과 같은 중요한 데이터의 일부, 대부분 또는 전부를 훔쳤습니다.

  • 호스트 이름, 사용자 이름, 시스템의 알려진 사용자 및 모든 시스템 환경 변수의 내용을 포함한 시스템 정보. 환경 변수는 프로그램이 시작할 때 액세스할 수 있는 메모리 전용 입력 데이터를 제공하는 방법이며, 종종 클라우드 기반 서비스에 대한 액세스를 제공하는 암호화 키 및 인증 토큰과 같이 디스크에 저장되지 않아야 하는 데이터를 포함합니다. 알려진 사용자 목록은 다음에서 추출됩니다. /etc/passwd, 다행스럽게도 실제로 암호나 암호 해시가 포함되어 있지 않습니다.
  • 로컬 Git 구성. 이것은 훔친 $HOME/.gitconfig, 일반적으로 널리 사용되는 Git 소스 코드 관리 시스템을 사용하는 사람의 개인 설정에 대한 유용한 정보를 포함합니다.
  • SSH 키. 이들은 디렉토리에서 도난당했습니다 $HOME/.ssh. SSH 키에는 일반적으로 SSH(보안 셸)를 통해 안전하게 연결하거나 SCP(보안 사본)를 사용하여 자체 네트워크 또는 클라우드의 다른 서버에 연결하는 데 사용되는 개인 키가 포함됩니다. 많은 개발자가 최소한 일부 개인 키를 암호화되지 않은 상태로 유지하므로 그들이 사용하는 스크립트와 소프트웨어 도구는 매번 암호나 하드웨어 보안 키를 요청하기 위해 일시 ​​중지하지 않고 자동으로 원격 시스템에 연결할 수 있습니다.
  • 홈 디렉토리에 있는 처음 1000개의 다른 파일은 크기가 100KB보다 작습니다. PyTorch 맬웨어 설명에는 "처음 1000개의 파일 목록"이 계산되는 방식이 나와 있지 않습니다. 파일 목록의 내용과 순서는 목록이 사전순으로 정렬되었는지 여부에 따라 다릅니다. 디렉토리의 파일을 처리하기 전, 도중 또는 후에 하위 디렉토리를 방문하는지 여부 숨김 파일 포함 여부; 그리고 디렉토리를 통과하는 코드에 임의성이 사용되는지 여부. 크기 임계값 미만의 모든 파일이 결국 도난 당할 수 있다고 가정해야 합니다.

이 시점에서 좋은 소식을 언급하겠습니다. 소위 "야간" 또는 실험적 버전의 소프트웨어를 가져온 사람들만 위험에 처했습니다.. ("nightly"라는 이름은 일반적으로 각 근무일이 끝날 때 자동으로 생성되는 최신 빌드라는 사실에서 유래되었습니다.)

대부분의 PyTorch 사용자는 아마도 이 공격의 영향을 받지 않은 소위 "안정적인" 버전.

또한 PyTorch의 보고서에서 특히 64비트 Linux 환경을 대상으로 하는 Triton 맬웨어 실행 파일.

따라서 우리는 이 악성 프로그램이 Linux용 Windows 하위 시스템(WSL)이 설치된 경우에만 Windows 컴퓨터에서 실행된다고 가정합니다.

규칙적인 "nightlies"를 설치할 가능성이 가장 높은 사람들에는 PyTorch 자체 또는 이를 사용하는 응용 프로그램의 개발자가 포함된다는 점을 잊지 마십시오. 회사 빌드에 대한 개인 키 기반 액세스 권한이 있는 사내 개발자도 포함될 수 있습니다. , 테스트 및 생산 서버.

DNS 데이터 도용

흥미롭게도 Triton 맬웨어는 데이터를 유출하지 않습니다(사이버 보안 업계에서 대신 사용하기 좋아하는 군사 용어). 도둑질 or 불법 복사) HTTP, HTTPS, SSH 또는 기타 고급 프로토콜을 사용합니다.

대신, 훔치려는 데이터를 범죄자가 제어하는 ​​도메인 이름에 속하는 "서버 이름"처럼 보이는 일련의 데이터로 암호화하고 인코딩합니다.

즉, 사기꾼은 일련의 DNS 조회를 통해 모든 가짜 요청에서 소량의 데이터를 몰래 빼낼 수 있습니다.

이것은 다음과 같은 종류의 트릭입니다. Log4Shell 해커 2021년 말, 인 메모리 환경 변수에서 약탈한 비밀 AWS 액세스 키의 값인 "이름"으로 "서버"에 대한 DNS 조회를 수행하여 암호화 키를 유출했습니다.

따라서 다음과 같은 "서버"에 대한 무의미하고 무의미한 DNS 조회처럼 보이는 것은 S3CR3TPA55W0RD.DODGY.EXAMPLE 등록된 공식 DNS 서버로 연결되는 간단한 조회를 가장하여 액세스 키를 조용히 유출합니다. DODGY.EXAMPLE 도메인입니다.


DNS를 통한 데이터 유출을 설명하는 라이브 LOG4SHELL 데모

[포함 된 콘텐츠]

여기에서 텍스트를 명확하게 읽을 수 없으면 전체 화면 모드를 사용하거나 직접 시청 YouTube에서.
재생 속도를 높이거나 자막을 켜려면 동영상 플레이어의 톱니바퀴를 클릭하세요.


사기꾼이 도메인을 소유한 경우 DODGY.EXAMPLE, 그들은 이러한 조회를 수행할 때 연결할 DNS 서버를 전 세계에 알려줍니다.

더 중요한 것은 HTTP, SSH 및 기타 고급 데이터 공유 프로토콜을 사용하여 TCP 기반 네트워크 연결을 엄격하게 필터링하는 네트워크도…

…때로는 DNS 조회에 사용되는 UDP 기반 네트워크 연결을 전혀 필터링하지 않습니다.

사기꾼의 유일한 단점은 DNS 요청의 크기가 다소 제한적이라는 것입니다.

개별 서버 이름은 64개(AZ, 37-0 및 대시 또는 하이픈 기호) 집합 중 9자로 제한되며, 많은 네트워크에서는 포함된 모든 요청, 헤더 및 메타데이터를 포함하여 개별 DNS 패킷을 각각 512바이트로 제한합니다.

그렇기 때문에 이 경우 맬웨어는 개인 키를 쫓는 것으로 시작한 다음 각각 1000바이트보다 작은 최대 100,000개의 파일로 제한됩니다.

그런 식으로 사기꾼은 관리할 수 없을 정도로 많은 수의 DNS 조회를 생성하지 않고 특히 서버 액세스 키를 포함하여 많은 개인 데이터를 훔칠 수 있습니다.

사이버 보안 목적으로 특별히 적용되는 조사가 없더라도 일상적인 운영상의 이유로 비정상적으로 많은 수의 DNS 조회가 발견될 수 있습니다.

무엇을해야 하는가?

PyTorch는 이미 이 공격을 차단하기 위한 조치를 취했습니다. torchtriton PyPI의 패키지는 의도적으로 같은 이름의 빈 패키지인 "dud"로 대체되었습니다.

이것은 설치를 시도한 모든 사람 또는 소프트웨어를 의미합니다. torchtriton 2022-12-30T08:38:06Z 이후에 PyPI에서 실수로든 의도적으로든 멀웨어를 수신하지 않습니다.

PyTorch의 개입 이후 악성 PyPI 패키지.

PyTorch는 편리한 IoC 목록을 게시했습니다. 타협의 지표, 네트워크 전체에서 검색할 수 있습니다.

위에서 언급했듯이 거의 모든 사용자가 이 공격의 영향을 받지 않은 "안정적인" 버전을 고수하더라도 안정적인 버전을 사용하더라도 "야간"을 실험하는 개발자나 매니아가 있을 수 있습니다. 릴리스도.

파이토치에 따르면:

  • 악성코드는 파일명으로 설치됩니다. triton. 기본적으로 하위 디렉토리에서 찾을 수 있습니다. triton/runtime Python 사이트 패키지 디렉토리에 있습니다. 파일 이름 자체가 약한 맬웨어 지표라는 점을 감안할 때 이 파일의 존재를 위험의 증거로 취급하십시오. 그것의 부재를 완전히 명확한 것으로 취급하지 마십시오.
  • 이 특정 공격의 맬웨어에는 SHA256 합계가 있습니다. 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. 다시 한 번 말하지만, 맬웨어는 다른 체크섬을 생성하기 위해 쉽게 다시 컴파일될 수 있으므로 이 파일이 없는 것이 확실한 건강 상태의 징후는 아니지만 감염의 징후로 취급할 수 있습니다.
  • 데이터 도용에 사용되는 DNS 조회가 도메인 이름으로 종료됨 H4CK.CFD. 이름으로 DNS 조회를 기록한 네트워크 로그가 있는 경우 이 텍스트 문자열을 검색하여 비밀 데이터가 유출되었다는 증거로 사용할 수 있습니다.
  • 악의적인 DNS 회신은 분명히 갔고, 회신이 있는 경우 다음과 같은 DNS 서버에서 왔습니다. WHEEZY.IO. 현재로서는 해당 서비스와 관련된 IP 번호를 찾을 수 없으며, PyTorch는 이 맬웨어에 DNS 태픽을 연결하는 IP 데이터를 제공하지 않았기 때문에 이 정보가 위협 사냥에 얼마나 사용되는지 확신할 수 없습니다. 현재 [2023-01-01T21:05:00Z].

다행스럽게도 대부분의 PyTorch 사용자는 야간 빌드를 사용하지 않거나 휴가 기간 동안 작업하지 않았거나 둘 다로 인해 영향을 받지 않았을 것으로 추측됩니다.

하지만 야간 빌드를 수정하는 PyTorch 애호가이고 휴일에도 작업을 했다면 해킹당했다는 명확한 증거를 찾을 수 없더라도…

...그럼에도 불구하고 예방책으로 새 SSH 키 쌍을 생성하고 SSH를 통해 액세스하는 다양한 서버에 업로드한 공개 키를 업데이트하는 것을 고려할 수 있습니다.

물론 해킹 당했다고 의심되는 경우 SSH 키 업데이트를 미루지 마십시오. 아직 수행하지 않았다면 지금 바로 수행하십시오!


타임 스탬프 :

더보기 노출 된 보안