인터넷 주소뿐만 아니라 오픈소스 패키지 이름 속이는 공급망 공격에도 활용돼
[보안뉴스 이상우 기자] “캠릿브지 대학의 연결구과에 따르면, 한 단어 안에서 글자가 어떤 순서로 배되열어 있지는는 중하요지 않고, 첫 번째와 마지막 글자가 올바른 위치에 있는 것이 중하다요고 한다. 나머지 글들자은 완전히 엉진망창의 순서로 되어 있라을지도 당신은 아무 문제 없이 이것을 읽을 수 있다. 왜하냐면, 인간의 두뇌는 모든 글자를 하하나나 읽는 것이 아니라 단어 하나를 전체로 인하식기 때이문다”
[이미지=utoimage]
교열을 전문적으로 하는 사람이 아닌 이상, 위 문단의 단어에서 글자 순서가 뒤바뀌어 있더라도 자연스럽게 읽는데 큰 문제가 없을 것이다. 이는 단어 우월이라는 심리효과에 의해 나타나는 현상이다(물론 캠브릿지 대학에서는 이러한 연구를 진행하지 않았다). 앞서 언급한 것처럼 우리는 단어를 볼 때 개별 글자가 아닌 하나의 집합체로 인식하기 때문에 순서가 일부 바뀌어 있어도 아무런 문제가 없는 것처럼 보인다. 소설 속 표현을 빌리자면 익숙함에 속아 소중함을 잃은 셈이다.
사이버공격 중에는 이와 비슷하게, 철자를 속여 공격하는 ‘타이포스쿼팅(Typosquatting)’ 기법이 있다. 타이포스쿼팅은 사회공학적 기법 중 하나로, 자주 사용하는 사이트의 URL을 교묘하게 바꿔 가짜 사이트로 유도하거나, 파일 이름을 속인 악성 소프트웨어를 내려받도록 유도하기도 한다.
단순한 눈속임, 하지만 효과는 엄청나
URL을 속이는 타이포스쿼팅은 크게 인터넷 주소에서 2차 도메인을 속이는 방법, 최상위 도메인을 다른 것으로 대체하는 방법, 불필요한 구두점을 추가하는 방법 등이 쓰인다. 2차 도메인을 속이는 방법으로는 오탈자를 이용하는 것이 대표적이다. 가령 ‘google’이라는 도메인 대신 ‘gogle(o 하나를 제거)’, ‘googIe(소문자 L을 대문자 I로 속임)’, ‘qooqle(g를 q로 속임)’ 등의 방식으로 사용자를 속여 가짜 사이트에 접속하도록 유도한다. 또 다른 방법으로는 관련 있는 단어를 2차 도메인에 추가하는 방식이다. 예를 들어 ‘google_mail[.]com’처럼 구글과 연관있는 서비스로 위장할 수 있다.
▲자세히 보면 구글 웹 페이지 주소가 아니다[자료=보안뉴스]
.com이나 .co.kr 같은 최상위 도메인을 .net이나 .org 등으로 속이는 것도 가능하다. 특히, 최상위 도메인을 일반적인 단어로 자유롭게 만들 수 있는 오늘날, 이러한 눈속임 가능성은 더욱 커졌다. 가령 구글의 지주회사인 알파벳은 abc[.]xyz라는 도메인을 사용하며, 메신저 서비스인 라인은 line[.]me를, 폐쇄형 소셜 미디어 밴드는 band[.]us 같은 도메인을 사용하고 있다.
최상위 도메인이 다양해지고 있는 만큼, 사이버 공격자는 사용자의 눈을 속이기 더 용이해졌다. 특히, 이들은 홈페이지에 정상적인 SSL 인증서까지 도입하면서 브라우저 주소창에 안전하다는 의미의 ‘자물쇠’ 모양 아이콘을 표시하기도 한다. 이 자물쇠는 사용자 PC와 서버 사이 통신에 암호화가 적용돼 있다는 의미지만, 마치 해당 웹 사이트 자체가 안전한 것처럼 사용자가 오해할 수 있기 때문에 이러한 인증서를 도입하는 가짜 사이트도 있다.
사이버 공격자는 이렇게 위장한 도메인을 명령제어 서버로 사용하는 경우도 있다. 실제로 북한의 해킹조직 탈륨은 ‘바이든 정권의 향후 대북 전략’이라는 키워드로 스피어피싱 공격을 감행하면서, ‘naver.midsecurity[.]org’ 서버를 통해 악성 워드 문서를 배포했다. 이처럼 위조된 도메인을 명령제어 서버로 사용하는 이유는 보안 담당자의 눈을 속이고 정상적인 사이트인 것처럼 위장하며 공격을 지속하기 위함이다.
타이포스쿼팅의 주요 목적은?
공격자는 이처럼 타이포스쿼팅을 악용해 다양한 형태의 공격을 펼친다. 사용자를 속인 가짜 사이트는 계정정보 탈취를 목적으로 쓰이는 경우가 많다. 인터넷 주소는 물론, 화면의 UI까지 유사하게 꾸민 사이트는 자칫 사용자가 속아 ID와 비밀번호 등을 입력할 수 있다. 쉽게 말해 피싱 사이트다.
[이미지=utoimage]
또한, 공격자는 이러한 피싱 사이트를 통해 악성코드 설치파일을 내려받도록 유도하는 것도 가능하다. 가령 크롬 웹 브라우저를 내려받는 URL을 이와 유사하게 꾸민 뒤 가짜 크롬 설치 파일을 배포한다면 공격자는 자연스럽게 악성코드를 유포할 수 있다.
위조한 도메인을 원래 서비스 주인에게 되팔기도 한다. 실제로 많은 기업이 이러한 타이포스쿼팅 때문에 골머리를 앓고 있으며, 사용자를 보호하고 브랜드 평판이 떨어지는 것을 막기 위해 공격자에게 돈을 지불하기도 한다. 다만, 이처럼 특정 브랜드를 사칭해 사용자에게 혼동을 줄 수 있는 도메인의 경우 인터넷주소 분쟁조정 등의 제도를 통해 권리를 되찾을 수도 있다.
개발자 커뮤니티에서 타이포스쿼팅 통한 악성 패키지 유포도 가능해
타이포스쿼팅 공격은 인터넷 주소뿐만 아니라 오픈소스 패키지를 사칭한 공급망 공격으로 이어질 수도 있다. 최근 파이썬(Python) 개발자 커뮤니티 PyPI에서는 가짜 패키지 4,000여개가 등록되는 사건이 발생했다. PyPI는 파이썬을 통해 개발된 소프트웨어 기능(패키지)을 공유하는 커뮤니티로, 등록된 가짜 패키지는 정상적인 패키지의 이름을 조금만 바꾼 형태다. 물론 해당 사건은 실제 공격이 아닌, 오픈소스 재사용의 위험성을 알리기 위한 캠페인이지만, 이러한 유형의 공격이 실제로도 발생할 수 있음을 보여줬다.
개발자는 오픈소스 패키지를 통해 원하는 특정 기능을 자신이 개발 중인 소프트웨어에 빠르게 적용할 수 있으며, 이를 통해 개발에 걸리는 시간을 단축하고 효율성을 높일 수 있다. 사이버 공격자는 이 과정에서 이름을 바꾼 가짜 패키지를 등록하고, 개발자가 오인해 악성코드가 담긴 패키지를 설치하도록 유도한다. 자신도 모르게 개발단계에서부터 소프트웨어에 악성코드가 포함되는 셈이다.
어떻게 막을 수 있을까?
일반 사용자가 타이포스쿼팅을 통한 가짜 사이트를 피할 수 있는 방법은 웹 사이트 접속 시 주소를 기억에 의존하는 대신 믿을 수 있는 포털 사이트를 통해 검색한 뒤 접속하는 것이 좋다. 특히, 정상적인 사이트에 접속해도 가짜 사이트로 연결되는 ‘파밍’ 공격을 피하기 위해 안티 바이러스를 설치하고 실시간 감시 기능 및 호스트 파일 변조 기능 등을 활성화하는 것이 필요하다.
오픈소스 재사용 시에는 이름이 비슷해 보인다고 해서 패키지를 무조건 가져다 쓰지 않아야 한다. 특히, 개발자가 사용하는 빌드 시스템에 도입할 코드는 반드시 점검 후 사용해야 한다.
[이상우 기자(boan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>