2021.08.27

강은성의 보안 아키텍트ㅣ보안 제품에 보안취약점이 있다고?

강은성 | CIO KR
최근 한 국책연구소가 국내 기업에서 개발한 가상사설망(VPN)의 취약점으로 인해 해킹을 당했다. 한국인터넷진흥원(KISA)의 보안 공지에 따르면 이 VPN에 “관리자페이지 접근 가능 및 계정 변경 가능 취약점”이 있었다고 한다. 지난 5월 세계를 떠들썩하게 한 미국 콜로니얼 파이프라인의 송유관 마비 사태 역시 VPN을 통한 랜섬웨어 공격으로 발생했다. 이 회사 사장이 미국 상원 청문회에서 한 증언에 따르면 이 VPN이 오래되어 2단계 인증 기능이 없었고, (복잡한 패스워드를 사용했지만) 범인은 이 VPN 계정을 통해 내부에 침투했다고 한다. 

올해 상반기에는 세계적으로도 잘 알려진 VPN 기업인 포티넷과 펄스시큐어의 VPN 취약점을 악용한 공격이 기승을 부렸다. 전반적으로 코로나19 상황에서 재택근무가 급증하면서 VPN의 사용이 많아졌고, 그것을 노린 범행자들의 공격 또한 크게 늘어난 것으로 보인다.

지난 4월에는 세계적인 네트워크 보안기업인 소닉월의 이메일보안 제품에서 원격에서 관리자 권한으로 접근할 수 있는 심각한 제로데이 취약점(CVSS 9.8점)을 파이어아이에서 발견해 소닉월에 제공했다. 파이어아이는 이 문제를 자신의 고객사에 대한 공격을 탐지하는 과정에서 알아냈다고 하니 이미 피해가 상당히 발생했을 가능성이 있다.

보안 제품에 보안취약점이 있다고? 
그렇다. SW가 들어가는 이상 ‘당연히’(!) 보안취약점이 있을 수 있다. (물론 HW에도 보안취약점이 있을 수 있다.) 보안 제품이라면 보안취약점이 생기지 않도록 다른 제품보다 더 노력해야겠지만, 보 안제품이라고 보안취약점이 없어야 한다고 생각하는 것은 합리적이지 않다. 

‘오류’가 하나도 없는 SW가 존재하기 어렵듯이 보안취약점이 하나도 없는 SW 역시 존재하기 어렵다. 심지어 출시할 때까지는 보안취약점이 없었으나 새로운 공격 방법이 나타나 보안취약점이 생기기도 한다. SW 오류와 보안취약점의 차이점이다.
 
<그림 1> 익스체인지 서버에 CVE-2021-26855 취약점 공격 코드 주입 
(출처: 한국인터넷진흥원, 「당신의 메일서버는 안녕하십니까?」, 2021-IR-SP01, 2021년 5월)

SW를 업그레이드할 때마다 쏟아지는 보안취약점 때문에 골치를 앓던 마이크로소프트는 2003년에 처음 서버용 윈도 운영체제에 SDL(Security Development Lifecycle)을 도입했고, 2004년부터는 모든 제품에 SDL을 적용하여 보안취약점을 매우 많이 줄였다. 

그런데도 올해 3월에 익스체인지 서버(Exchange Server)에서 제로데이 취약점 4개가 발견됐고, 이를 통해 미국 내 단체와 기관에 대한 보안 공격이 이뤄졌다고 MS가 밝혔다. 익스체인지 서버가 공급사슬 공격의 통로가 된 것이다. 

국내 기업에도 피해가 있었다. 이 취약점이 있는 익스체인지 서버가 10만 대가 넘는다고 하니, 피해 기업이 어느 정도일지 가늠하기 어렵다. 

그럼에도 불구하고 보안제품에는 보안취약점이 없기를 바라는 것은 인지상정일 것이다. 보안 공격을 막기 위해 도입했는데, 그 보안제품이 보안 공격의 통로가 되는 건 뭔가 아쉽다.

게다가 보안제품은 OS 커널 레벨의 활동도 하고, 다른 제품에 관리자 권한으로 접속하거나 회사 모든 단말에 SW를 배포할 수도 있다. 회사와 개인의 중요한 데이터를 들여다보기도 한다. 보안을 위해 허용된 특수권한이 오히려 보안 공격의 표적과 통로가 되는 셈이다.

구글, MS, 오라클, 아마존, 삼성전자, LG전자, 네이버 등 세계적인 회사의 제품과 서비스에서 보안취약점이 발견되더라도 크게 비난받지 않는 것은 그 회사들이 그만큼 제품 보안을 강화하기 위해 노력을 많이 하기 때문이다. 

일찍이 MS가 SDL을 도입했듯이 많은 글로벌 회사에서 보안공학을 도입하여 각 개발단계에서 보안 활동을 하고, 출시 후에는 PSiRT(Product Security Incident Response Team) 조직과 프로세스를 통해 보안취약점에 대해 적극적으로 대응한다. 

이제 정보보안산업 규모가 2020년 기준 3조 9000억 원이나 되고, 매출이 몇백 억 원이 되는 기업도 적지 않다. 이제 제품 보안에 적극적으로 대응할 때가 됐다.

검증 단계에서의 모의해킹은 보안에 관심이 있는 기업이라면 어느 정도 할 것이고, 전자정부 SW와 관련이 있다면 구현 단계에서의 보안 정적 분석(Secure coding)도 웬만큼 할 것 같다. 툴을 이용한 소스코드 보안 정적 분석의 한계가 있긴 하지만, 하지 않는 것보다 훨씬 낫다. 

정적 분석 도구가 없는 중소기업은 KISA에서 운영하는 ‘중소기업 SW 보안약점 진단 서비스’를 이용할 수 있다. KISA에서 운영하는 SW 신규 보안취약점 신고 포상제에 참여하면 신규 취약점에 신속하게 대응할 수 있다. KISA에서 참여기업과 함께 PSiRT 역할을 하는 셈인데, 안타깝게도 참여한 보안기업이 10개도 되지 않는다. 

보안 정적 분석과 모의해킹을 하더라도 설계 단계에서의 보안취약점으로 사고가 발생하기도 한다. 설계 단계의 위협 모델링이 중요한 이유다. 

MS-SDL에서 가장 강조하는 것이 바로 위협 모델링이다. 별도의 인력을 뽑거나 팀을 구성하면 좋겠지만, 개발자에게 3일 정도 위협 모델링 교육을 해도 개발자의 인식과 역량을 상당히 높일 수 있다. 개별 기업이 하기 어렵다면 협회 같은 곳에서 진행하는 것도 방법이다(단지 보안기업만의 문제는 아니고 SW 개발기업에서는 모두 고려해 볼 일이다).

이제 보안기업이 전반적으로 제품 보안에 투자한다는 사회적 인식을 만들 필요가 있다. 그래야 보안 제품에 대한 신뢰도도 높아지고, 혹시 사고가 발생하더라도 ‘선한 관리자’로서 할 일은 했다는 평가를 들을 수 있다. 이제 영세해서 못했다는 말은 하기 어려운 상황이지 않은가 싶다.
 



2021.08.27

강은성의 보안 아키텍트ㅣ보안 제품에 보안취약점이 있다고?

강은성 | CIO KR
최근 한 국책연구소가 국내 기업에서 개발한 가상사설망(VPN)의 취약점으로 인해 해킹을 당했다. 한국인터넷진흥원(KISA)의 보안 공지에 따르면 이 VPN에 “관리자페이지 접근 가능 및 계정 변경 가능 취약점”이 있었다고 한다. 지난 5월 세계를 떠들썩하게 한 미국 콜로니얼 파이프라인의 송유관 마비 사태 역시 VPN을 통한 랜섬웨어 공격으로 발생했다. 이 회사 사장이 미국 상원 청문회에서 한 증언에 따르면 이 VPN이 오래되어 2단계 인증 기능이 없었고, (복잡한 패스워드를 사용했지만) 범인은 이 VPN 계정을 통해 내부에 침투했다고 한다. 

올해 상반기에는 세계적으로도 잘 알려진 VPN 기업인 포티넷과 펄스시큐어의 VPN 취약점을 악용한 공격이 기승을 부렸다. 전반적으로 코로나19 상황에서 재택근무가 급증하면서 VPN의 사용이 많아졌고, 그것을 노린 범행자들의 공격 또한 크게 늘어난 것으로 보인다.

지난 4월에는 세계적인 네트워크 보안기업인 소닉월의 이메일보안 제품에서 원격에서 관리자 권한으로 접근할 수 있는 심각한 제로데이 취약점(CVSS 9.8점)을 파이어아이에서 발견해 소닉월에 제공했다. 파이어아이는 이 문제를 자신의 고객사에 대한 공격을 탐지하는 과정에서 알아냈다고 하니 이미 피해가 상당히 발생했을 가능성이 있다.

보안 제품에 보안취약점이 있다고? 
그렇다. SW가 들어가는 이상 ‘당연히’(!) 보안취약점이 있을 수 있다. (물론 HW에도 보안취약점이 있을 수 있다.) 보안 제품이라면 보안취약점이 생기지 않도록 다른 제품보다 더 노력해야겠지만, 보 안제품이라고 보안취약점이 없어야 한다고 생각하는 것은 합리적이지 않다. 

‘오류’가 하나도 없는 SW가 존재하기 어렵듯이 보안취약점이 하나도 없는 SW 역시 존재하기 어렵다. 심지어 출시할 때까지는 보안취약점이 없었으나 새로운 공격 방법이 나타나 보안취약점이 생기기도 한다. SW 오류와 보안취약점의 차이점이다.
 
<그림 1> 익스체인지 서버에 CVE-2021-26855 취약점 공격 코드 주입 
(출처: 한국인터넷진흥원, 「당신의 메일서버는 안녕하십니까?」, 2021-IR-SP01, 2021년 5월)

SW를 업그레이드할 때마다 쏟아지는 보안취약점 때문에 골치를 앓던 마이크로소프트는 2003년에 처음 서버용 윈도 운영체제에 SDL(Security Development Lifecycle)을 도입했고, 2004년부터는 모든 제품에 SDL을 적용하여 보안취약점을 매우 많이 줄였다. 

그런데도 올해 3월에 익스체인지 서버(Exchange Server)에서 제로데이 취약점 4개가 발견됐고, 이를 통해 미국 내 단체와 기관에 대한 보안 공격이 이뤄졌다고 MS가 밝혔다. 익스체인지 서버가 공급사슬 공격의 통로가 된 것이다. 

국내 기업에도 피해가 있었다. 이 취약점이 있는 익스체인지 서버가 10만 대가 넘는다고 하니, 피해 기업이 어느 정도일지 가늠하기 어렵다. 

그럼에도 불구하고 보안제품에는 보안취약점이 없기를 바라는 것은 인지상정일 것이다. 보안 공격을 막기 위해 도입했는데, 그 보안제품이 보안 공격의 통로가 되는 건 뭔가 아쉽다.

게다가 보안제품은 OS 커널 레벨의 활동도 하고, 다른 제품에 관리자 권한으로 접속하거나 회사 모든 단말에 SW를 배포할 수도 있다. 회사와 개인의 중요한 데이터를 들여다보기도 한다. 보안을 위해 허용된 특수권한이 오히려 보안 공격의 표적과 통로가 되는 셈이다.

구글, MS, 오라클, 아마존, 삼성전자, LG전자, 네이버 등 세계적인 회사의 제품과 서비스에서 보안취약점이 발견되더라도 크게 비난받지 않는 것은 그 회사들이 그만큼 제품 보안을 강화하기 위해 노력을 많이 하기 때문이다. 

일찍이 MS가 SDL을 도입했듯이 많은 글로벌 회사에서 보안공학을 도입하여 각 개발단계에서 보안 활동을 하고, 출시 후에는 PSiRT(Product Security Incident Response Team) 조직과 프로세스를 통해 보안취약점에 대해 적극적으로 대응한다. 

이제 정보보안산업 규모가 2020년 기준 3조 9000억 원이나 되고, 매출이 몇백 억 원이 되는 기업도 적지 않다. 이제 제품 보안에 적극적으로 대응할 때가 됐다.

검증 단계에서의 모의해킹은 보안에 관심이 있는 기업이라면 어느 정도 할 것이고, 전자정부 SW와 관련이 있다면 구현 단계에서의 보안 정적 분석(Secure coding)도 웬만큼 할 것 같다. 툴을 이용한 소스코드 보안 정적 분석의 한계가 있긴 하지만, 하지 않는 것보다 훨씬 낫다. 

정적 분석 도구가 없는 중소기업은 KISA에서 운영하는 ‘중소기업 SW 보안약점 진단 서비스’를 이용할 수 있다. KISA에서 운영하는 SW 신규 보안취약점 신고 포상제에 참여하면 신규 취약점에 신속하게 대응할 수 있다. KISA에서 참여기업과 함께 PSiRT 역할을 하는 셈인데, 안타깝게도 참여한 보안기업이 10개도 되지 않는다. 

보안 정적 분석과 모의해킹을 하더라도 설계 단계에서의 보안취약점으로 사고가 발생하기도 한다. 설계 단계의 위협 모델링이 중요한 이유다. 

MS-SDL에서 가장 강조하는 것이 바로 위협 모델링이다. 별도의 인력을 뽑거나 팀을 구성하면 좋겠지만, 개발자에게 3일 정도 위협 모델링 교육을 해도 개발자의 인식과 역량을 상당히 높일 수 있다. 개별 기업이 하기 어렵다면 협회 같은 곳에서 진행하는 것도 방법이다(단지 보안기업만의 문제는 아니고 SW 개발기업에서는 모두 고려해 볼 일이다).

이제 보안기업이 전반적으로 제품 보안에 투자한다는 사회적 인식을 만들 필요가 있다. 그래야 보안 제품에 대한 신뢰도도 높아지고, 혹시 사고가 발생하더라도 ‘선한 관리자’로서 할 일은 했다는 평가를 들을 수 있다. 이제 영세해서 못했다는 말은 하기 어려운 상황이지 않은가 싶다.
 

X