본문 바로가기

보안 이슈

좋은 대안 방안이더라도 안주하지 말자!

언론사 : 보안 뉴스

뉴스 제목 : PyPI의 '이중인증 필수' 정책, 올바른 방향이긴 하지만

뉴스 게시일 : 2023-06-06

URL : https://www.boannews.com/media/view.asp?idx=118826 

 

PyPI의 ‘이중인증 필수’ 정책, 올바른 방향이긴 하지만

파이선 프로그래머들이 가장 많이 사용하는 공공 리포지터리는 PyPI다. 그런데 이 PyPI에서 “모든 사용자들이 2023년 말까지 이중인증 옵션을 사용하도록 하겠다”고 얼마 전 발표했다. 이렇게 했

www.boannews.com

 

- 기사 요약

PyPI에서 '모든 사용자들이 2023년 말까지 이중인증 옵션을 사용하도록 하겠다.'라고 발표했지만 이러한 방법은 중요 프로젝트의 메인테이너 계정들을 공격자들이 침해하여 정상 프로젝트에 악성 코드를 임의로 주입하는 일이 줄어들 수 있지만 이것만을 PyPI를 안전하게 사용할 수 있는 것이 아니라고 보안 전문가들은 강조하고있다.

현재 사이버 공격자들은 PyPI에 많은 관심을 가지고 있는 상황이다. 이들은 여러 개발자들이 이곳에서 코드를 자유롭게 나누고 있다는 것을 알고 슬쩍 자신들만의 악성코드를 집어넣을 수 있다면 이 악성코드가 개발자들 간 신뢰를 타고 빠르게 퍼져나간다는 것을 잘 알고있다. npm이나 깃허브 등 비슷한 종류의 코드 리포지터리들 역시 같은 이유로 공격자들의 관심을 한 몸에 받고있다.

공격자들은 여러가지 방법으로 이런 리포지터리를 노리는데, 그 중 하나는 중요 관리자나 메인테이너의 계정을 침해하는 것이다. 그렇기에 이런 계정의 소유주들이 이중인증을 사용한다면 계정 침해 공격이 상당히 어려워져 메인테이너인 것 처럼 코드에 접근해 악성 코드를 주입하는 행위는 꽤나 사라질 것으로 기대된다.

한편 사람들은 이중인증으로 안주하면 안된다고 한다.

"공격자들은 끊임없이 새로운 공격 기법을 연구하고 찾아낸다. 그렇기에 한 가지 방법으로 플랫폼 전체를 안전하게 만들 수 없는게 당연하다."

"해커들이라고 해서 이중인증을 뚝딱 쉽게 공략할 수 있는 건 아닙니다만 이중인증 자체로 완벽하지는 않다는 겁니다."

"리포지터리들이 이처럼 보안 강화를 위해 여러 방법을 모색하고 규정을 바꾸는 것도 중요하지만 리포지터리를 사용하는 사람들이 보안 실천 사항들을 간과하지 않아야 한다."

 

- 개인 의견

이 기사를 보았을 때 이중인증이 뭐....효과는 있을 것 같다라는 생각은 했지만 그렇게 까지 있을까?라는 생각을 하긴 했다. 왜냐하면 게임같은 경우도 OTP나 제 2비밀번호 같은게 있어서 이중인증이라고 말할 수 있는데 그래도 해킹당해서 털리는 모습을 많이 봐와서 그런가....효과는 있지만 그렇게 큰 효과는 없을 거라고 생각했다.

그리고 역시 항상 내가 생각해왔던 말을 리니지의 CEO인 자베드 하산이 공격자들은 끊임없이 새로운 공격 기법을 연구하고 찾아낸다고 하였는데...후....역시 역시....공격자들도 끊임없이 연구하고 개발해내는데 막는사람이라곤 한가지 방법으로 오래 갈 수 있겠어...?라는 생각을 하였따...

훔....PyPI가 어떤 이중인증을 사용할 지는 모르겠는데...만약 이러면 어떨까...? 하나는 내 아이디가 가지고 있는 고유한 코드가 있고 하나는 매번 바뀌는 코드가 있는거지 그...로그인할때마다 바뀌는 랜덤한 코드. (이때, 로그인할때마다 바뀌는 랜덤한 코드는 OTP처럼 시간초가 있는게 아니라 진짜 로그인 로그아웃 할때 마다 한번씩 바뀌는 것) 이렇게 두가지를 가지고 조합을 해서 이중 인증을 하는 건 어떨까...?

 


 

[ 용어 정리 ]

 

리포지터리

- 리포라고도 불리며 개발자가 애플리케이션 소스 코드에 대한 변경을 수행 및 관리하는 데 사용하는 중앙화된 디지털 스토리지

- 리포지터리를 사용하면 소프트웨어 개발 팀이 기본 소스 코드를 손상시키지 않으면서 소프트웨어의 프로그램 코드를 여러 번 변경할 수 있다.

(https://aws.amazon.com/ko/what-is/repo/)

 

PyPI

- Python Package Index의 약자로 Python의 공식 소프트웨어 저장소

- 우리가 pip를 이용해 설치하는 패키지들은 모두 PyPI에 있는 것들이다.

(https://yeslab.tistory.com/135)

 

보안 토큰

- 사용자가 시스템에 액세스할 때 반드시 소유해야하는 물리적 디바이스

- 아이덴티티와 액세스를 입증하려면 사용자와 시스템 사이에서 인증 데이터가 전송되여야하는데 이러한 데이터를 옮기는 전달자 역할

(https://www.okta.com/kr/identity-101/security-token/)

 

npm

- Node Package Manager의 약자로 자바스크립트 프로그래밍 언어를 위한 패키지 관리자

- 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자

- 명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다.

(https://ko.wikipedia.org/wiki/Npm_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4))

 

타이포스쿼팅 공격

- 사회공학 기법의 일종으로서 정상 도메인과 비슷한 이름의 도메인을 등록해두고 이를 정상적인 도메인으로 착각하여 접속한 피해자에게 사기 또는 악성코드 배포와 같은 악의적인 영향을 끼치는 공격

(https://secstudy.tistory.com/entry/%ED%83%80%EC%9D%B4%ED%8F%AC%EC%8A%A4%EC%BF%BC%ED%8C%85Typosquatting-Attack-%EA%B3%B5%EA%B2%A9)

 

심스와핑 공격

- SIM + Swqp 공격으로써 스마트폰과 같은 휴대폰의 '가입자 식별 장치'로 사용되는 심(SIM)카드 속에, 특정인의 서비스 정보를 입력하여, 휴대폰 사용자를 저장하여, 본인 인증을 통과하는 공격이다.

- 심 스와프 사기, 심스와프 하이재킹, 심 가로채키 공격으로 불리곤 한다.

(https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=aepkoreanet&logNo=221408595388)

 

OIDC 익스플로잇

- OpenID Connet로써 인증(Authentication)에 중점을 두고 있는 프로토콜

- OAuth 2.0 프로토콜에 기반하고 있으며, 해당 프로토콜 위에서 사용자 인증을 위해 사용된다.

(https://nairns.tistory.com/47)