[서평] 마이크로소프트웨어 389호, SECURITY 보안

[ 읽게 된 동기 ]


IT 트랜드를 익히기 위한 노력.

 

[ 한줄평 ]


내겐 너무도 멀고도 어려운 그것. 보안.

 

[ 서평 ]


필자가 개발을 시작한지 어느새 7년째다.

주로 은행 애플리케이션을 만들면서 보안과는 뗄래야 뗄 수 없는 관계에 있었다.

 

몇가지 썰을 풀자면,

신입 시절, 개발자로써 투입 되었던 첫 프로젝트에서 ‘계좌이체’ 기능을 맡게 되었는데 당시 앱에서 실제 금전적 거래가 일어나는 기능은 ‘계좌이체’ 기능이 유일했다. 또한, 최근에는 Web App 을 많이 사용하지만 당시에는 Native App 으로 이체기능을 구현했다. 이는 굉장한 압박이었다.

안드로이드 파트 리더는 내게 그동안의 보안 사고를 언급하며 ‘잘’ 해야 한다고 압박했다. 지금은 그럴 일이 거의 없겠지만, 초창기 한 개발자가 고객이 계좌 이체를 하면 일정 금액을 자신의 계좌로 이체 되도록 했다고 한다. 이론상으론 필자 또한 가능한 포지션이었다. 무려 첫 프로젝트에서 신입이 맡기엔 무거운 기능이었지만 큰 문제 없이 프로젝트를 완료했던 기억이 있다.

 

또 하나는 3년차 시절. 어느정도 개발을 하게 되었다고 자부하던 때에 고객의 비밀번호가 메모리 상에 올라가 해킹이 가능한 것이 발견되었다. 물론 당시 코딩을 필자가 했고, 고객사에서는 노발대발하며 당장 개선하라고 했다. 본사에서 가장 코딩을 잘하던 부장님이 옆에 앉아 필자의 코드를 하나 하나 파헤치는데 그야말로 발가벗겨지는 기분이었다.

당시 그 부장님은 필자가 학생때 이론으로만 배웠던 것을 실무에 접목하여 문제를 해결했는데, 문제를 발견했던 보안 업체에서 깔끔히 처리 되었다며 도대체 어떻게 처리 한거냐고 물어볼 정도였다. 그 사건 이후 한동안 자존감이 바닥을 치기도 했다.

 

그로부터 1년 뒤쯤 또 다른 프로젝트에서는 서드파티 업체와 데이터를 주고받아야 하는 이슈가 생겼다. 해당 업체는 AES256, 비대칭 키, 대칭 키, SSL 등 보안의 기본적인 단어들을 구사하며 안정성을 요구했는데, 해당 작업을 처리해야 하는 개발자인 필자가 보안에 무지하여 무척 당황을 했었다.

당시 퇴근 후 앱에서 할 수 있는 보안 작업들을 며칠간 분석하고 나서야 업체 담당자의 말을 알아들을 수 있었고, 담당자와 고객사가 요구하는 보안 수준의 아키텍처를 구현할 수 있었다. 지금 돌아보면 정말 기초 중의 기초도 못알아 들었으니 필자를 어떻게 봤을까 싶다.

 

이처럼 필자는 보안 작업을 계속해서 해왔기에, 마이크로소프트웨어 389호 보안편을 어느정도 이해할 수 있을거라 생각했다.

그래, 안타깝지만 필자는 거의 이해하지 못했다.

 

 

# 보안? 이 바닥은 전쟁이야.

 

말 그대로다.

이제 우리는 사이버 전쟁의 시대에 살고 있다. 최근 SNS 에서 일어나는 설전들을 보라. 몇 바이트 되지도 않는 텍스트 덩어리가 상처를 주고, 심지어 사람을 죽음으로 몰기까지 한다. 거창한 사건도 필요 없이, 우리가 매일 같이 주고 받는 카카오톡 메시지 속에서도 우리는 서로 상처를 받고, 준다.

이렇게 연결되어 있기에 가끔 우리는 말한다. “정말로 대중교통이 다 해킹 당하면 어떡하지?”, “정말 집 안의 전등들이 다 해킹당하고, 문이 저절로 막 열리고 그럴까?” 글쎄, 멀리 갈 필요도 없다. 이미 전쟁은 시작되었다.

 

남오세티야 전쟁은 단순히 국가간 이익이 상충해 발생한 분쟁을 넘어섰다. 전장에서 물리적인 공격과 사이버 공격이 결합한 최초의 사례로 기록됐다.

 

우리나라만 하더라도 당장 ‘네이버’ 나 ‘카카오’ 가 해킹을 당한다면 온 나라가 갑자기 먹통이 될 가능성이 크다. 헌데, 국가 기관의 홈페이지가 해킹 당하거나 통신사 등이 해킹을 당한다고 생각해보자. 순식간에 국가 증시가 바닥을 치고, 이에 따라 외화가 빠져나가면 그 뒤의 후폭풍은 그리 가볍지 않을 것이다.

인터넷으로 모두가 연결된 만큼 해커는 모두에게 공격이 가능한 셈. 우리는 늘상 공격에 노출되어있는 것이나 마찬가지다.

 

미군은 여기서 그치지 않고 유타주 블러프일 근처에 15억 달러를 들여 초대형 유타 데이터 센터를 완공했다. 데이터 센터의 저장용량은 요타바이트 급으로 미국에 들어오는 모든 디지털 신호를 분석 처리 한다고 알려졌다.

 

세계 최강 미국은 미국으로 들어오는 모든 디지털 신호를 분석한다고 한다. 필자는 이 문구를 보고 소름이 돋았다. 트위터에 몇 글자 적고 FBI 에게 조용히 사라지는게 그저 영화 속 이야기가 아닌 것이다.

이런 무서운 일들이 가까이서 보면 그저 ‘숫자 놀음’ 이라는 것은 조금 더 무섭다. 이게 왜 숫자 놀음일까? 그래, 보안은 어떻게 막히고 뚫릴까? 우리의 비밀번호는 어떻게 저장될까? 암호화는 뭘까?

그 이야기를 마이크로소프트웨어 389호 보안편에서 차차 설명한다.

 

# RSA, AES 대중적 암호화 알고리즘

 

암호화를 검색하다보면 쉽게 접할수 있는 것이 RSA 와 AES 다. 필자 또한 두 알고리즘을 가장 많이 사용했고, 수십년 전 만들어진 이 알고리즘이 지금까지 사용되고 있다는 것에 매우 놀라웠다.

암호화 알고리즘에는 크게 비대칭 키와 대칭키 알고리즘이 있는데, 비대칭 키 알고리즘 방식이 흔히 우리가 사용되는 공인인증서다. 필자는 공인인증서를 다루는 앱을 개발하면서 그리고 RSA, AES 등의 암호화 알고리즘을 사용하면서 무서웠던 것은 이 암호화 알고리즘은 ‘못 뚫기에’ 안전한 것이 아니라 ‘뚫기에 오래 걸리기 때문에’ 안전하다고 말한다는 것이었다.

 

간단한 예로 1000자리 수를 계산해보면 1000억년 정도의 시간이 소요되므로, RSA 암호는 안전하다고 믿는 것이다.

 

그렇다. 널리 쓰이는 RSA 알고리즘은 간단히 말해 두 ‘소수’ 를 가지고 이는 서로를 여는 키가 된다. 두 소수인 A와 B는 A로 암호화 한 것을 B로 열고, B 로 암호화 하는 것을 A 로 여는 알고리즘이다. 헌데, A나 B 가 없어도 무한히 ‘계산’ 하면 이 알고리즘에 해당하는 키를 찾을 수 있는 것이다. 다만, 그렇게 무한히 대입해보는데 시간이 오래 걸리기에 이를 ‘안전하다’ 고 판단하고 우리가 사용하는 것이라고 한다.

우리가 늘상 사용하는 암호들이 단지 ‘숫자 계산’ 이었다니. 컴퓨터 자체가 계산기이긴 하지만, 뭔가 엄청난 것이 있을거라 생각했던 내겐 RSA 알고리즘은 굉장히 놀라웠다.

 

 

# 보안. 끝나지 않는 확실한 먹거리.

 

필자는 이러한 기술 이야기가 흥미롭다. 세상을 바꾸기 위한 최고의 도구라고 생각하기 때문이다. 공교롭게도 페이팔 마피아의 대장 피터 틸이 비슷한 이야기를 했다.

 

미국에서 회사 하나가 성공하려면 수백, 수천 개의 기적이 필요한 것도 사실이다. 그러나 인간이 다른 종들과 구별되는 것은 기적을 만들 수 있기 때문이다. 바로 그 기적을 우리는 ‘기술’ 이라고 부른다. 기술이 기적인 이유는 ‘더 적은 것으로 더 많은 일을’ 하게 해주기 때문이다. – 피터 틸

 

인간은 각자가 중요시 하는 가치가 다 다르고, 이 가치를 지키고 찾아 나서는 이야기가 각자의 인생이라고 생각한다. 필자는 필자의 인생에서 가치 있는 것 중 ‘기술’ 을 결코 빼 놓을 수 없다.

하지만, ‘기술’ 그 자체에 가장 큰 의미를 부여하진 않는다. 그렇다. 이 기술을 활용해 실생활에, 비즈니스에 적용한 무언가가 훨씬 더 흥미롭다.

 

보안 역시 그 중 하나이다. 단순히 숫자들의 알고리즘인 암호화도 그 자체만으로 보면 가치가 덜하다. 암호화 알고리즘이 우리의 문서를 지키고, 집을 지키고 나아가 우리 인류를 지켜내는 모습을 보면 너무도 흥미롭지 않은가?

 

랜섬웨어의 어원을 풀어보면, 납치 또는 유괴된 사람에 대한 몸값을 의미하는 랜섬과 컴퓨터 내부에서 동작하는 프로그램을 의미하는 소프트웨어가 결합해 만들어진 것으로 ‘몸값을 요구하는 소프트웨어’라 할 수 있다. 대상이 ‘몸’에서 ‘데이터’로 바뀌었을 뿐이다.

 

물론 그 훌륭한 기술을 인류 파괴에 사용하는 못된 종자들도 있지만 말이다.

하지만 필자는 믿는다. 그럼에도 우리는 조금씩 더 나은 방향으로 다가가고 있고, 이러한 기술들이 그 속도를 더하고 있다고 말이다.

 

내부 카메라에서 안전벨트 유무를 이미지 분석해 가속페달을 밟아도, 사람이 있는 상태에서 안전벨트가 채워져 있지 않으면 차량이 움직이지 않게 되는 것이다.

 

이처럼 보안은 모든 IT 서비스에 필수요소이자, 그야말로 끊이지 않는 먹거리 중 하나이다.

애플리케이션 개발자로써 보안과는 다소 거리가 있는 포지션으로 일해왔지만, 해를 거듭 할 수록 점차 분야가 모호해져 가는게 이 분야인 것 같다. 보안에 대한 전반적인 이야기가 담겨있는 이번 마이크로소프트웨어 389호 보안편을 읽으며 그간 소홀했던 분야에 대해 알게되어 만족한다.

 

 

[ 인상 깊은 문구 ]


 

  • APT 공격은 공격자(또는 공격 조직)가 경제적, 정치적, 전략적 목적으로 특정 공격대상에 은밀하게 침투, 지속적으로 이득을 취하는 새로운 공격방식을 의미한다.
  • 이전의 사이버 공격은 불특정 다수가 대상이었다. 반면 APT 공격은 표적 공격이라는 특징이 있다.
  • 남오세티야 전쟁은 2008년 8월 발발한 조지아와 남오세티야 친러시아 성향 분리주의자들 사이의 전쟁이다.
  • 남오세티야 전쟁은 단순히 국가간 이익이 상충해 발생한 분쟁을 넘어섰다. 전장에서 물리적인 공격과 사이버 공격이 결합한 최초의 사례로 기록됐다.
  • 국제 적십자사와 미국 사이버 사령부까지 참여해 사이버 공격을 무력분쟁으로 규정하고, 사이버 테러로 인명과 재산피해가 발생하면 군사력을 사용할 수 있도록 하는 일명 ‘탈린 매뉴얼’을 2012년 제정했다. 최근 2017년 2월 3일에는 ‘탈린 매뉴얼 2.0’ 이 개정 발간됐다.
  • 미군은 2009년 공군에서 최초의 사이버 사령부를 창설했다. 2010년에는 육군, 해군, 해병데에 각 군별로 통제하는 사이버 사령부를 창설하며, 그 해 5월 전략사령부 예하에 국가급 사이버 사령부를 창설했다.
  • 미군은 여기서 그치지 않고 유타주 블러프일 근처에 15억 달러를 들여 초대형 유타 데이터 센터를 완공했다. 데이터 센터의 저장용량은 요타바이트 급으로 미국에 들어오는 모든 디지털 신호를 분석 처리 한다고 알려졌다.
  • 이런 자들을 컴퓨터를 잘 다루는 다크 사이드 덕후라고 부르며 옹호해주기에는 세상이 급변했다. 야쿠자나 조폭, 인신매매를 일삼는 오프라인 악당과 동급이라고 봐야 한다.
  • ‘지문인식’은 가장 간편하고, 저렴해 생성 데이터가 비교적 적다.
  • 그러나 ‘지문인식’은 지문 손상, 지문 손실(닳아 없어진 경우), 땀이나 물기 등 이물질 등으로 인한 인식률 저하 우려가 있다.
  • 이 밖에도 범용적 사용은 다소 어려움이 있겠지만, 사람마다 항문의 괄약근 모양이 상이한 점을 이용한 인증방법도 이미 고안됐었다.
  • KB금융지주 경영연구소에서는 생체인증을 활용한 지불결제 기능이 단기적으로 대중화 및 보편화가 이뤄지기는 어려울 것으로 보고 있다. 신용카드 가맹점에 있는 220만개 이상의 단말기 교체에 따르는 비용은 신용카드사와 밴사 등 이해관계자의 추가적인 투자를 요구하기 때문이다.
  • 2015년 미국 안전관리처 에서 약 560만명의 지문인식 정보가 유출됐다.
  • 생체인증정보는 유출 시 주민등록번호처럼 변경할 수도 없다. 변경하려면 영화처럼 신체의 일부를 교체해야 하는 상황까지 상상해야 한다.
  • 여러 클라우드와 CDN 서비스들은 이미 오래 전부터 작은 파일부터 대용량 파일까지 HTTPS를 통해 서비스하고 있다.
  • 즉 근본적인 문제는 인터넷 검열이다. 모든 사용자의 행동 및 정보는 보호받아야 할 권리가 있으며 누군가가 이를 들여다볼 수 있는 여지가 생기면 안된다. 개인정보가 포함되지 않은 사이트라도 HTTPS를 적용해야 하는 이유다.
  • 시스코, 구글, 모질라, 패스틀리 등의 회사와 재단들은 ‘Let’s Encrypt’ 라는 이름의 무료 HTTPS 인증서 보급 기관을 만들었다. 이 기관을 통해 개발자와 관리자들은 손쉽게 무료로 HTTPS 인증서를 발급받을 수 있는 수단을 얻을 수 있게 됐다.
  • 기술의 발전에 따라 범죄 패턴을 이해하게 되면서, 경찰은 반작용적 대응보다는 예측적인 행보 쪽으로 예방 활동을 옮겨가게 됐다.
  • 그 외에도 상당수 미 경찰은 우범지역이나 범죄활동이 증가된 지역을 확인해주는 범죄예측 소프트웨어를 사용하고 있다.
  • 이 외에도 전통적 범죄예측 모델의 단점에 대한 다양한 비판이 있다. 즉 범죄예측 시스템이 인종이나 계급같은 인자의 영향으로 그나마 남은 적법성까지 상실할지 모른다는 우려도 있다.
  • 가까운 장래, 인공지능이 급격히 발전하고, 이러한 인공지능의 조력으로 범죄 예측 프로그램의 수준이 엄청나게 높아진다 해도, 어떤 사람이 어느 시기에 어떤 유형의 범죄를 행할지를 예측하는 것은 실현가능성이 극히 낮다고 할 것이다.
  • 인공지능 범죄예측 결과는 앞서 살펴본 바와 같이 과정의 불투명성이나 블랙박스와 같은 성격 때문에 법적으로 용인하기 어려운 측면이 있는 것은 사실이다.
  • 기계학습 모델은 지속적으로 새로운 데이터를 학습하지 않으면 노후화 돼 성능이 떨어진다.
  • 가장 기본은 논리적이고 과학적인 사고 능력이다. 회사에서 분석을 하다 보면 통계 기법이나 프로그래밍 같은 기술이 부족해서가 아니라 애초에 가설과 논리를 절못 세워 엉뚱한 결론에 이르는 경우가 종종 있다.
  • 2014년 6월 ‘코드스페이스’라는 업체는 사용하고 있던 클라우드 포털 계정의 인증정보를 해킹당했다. 해당 계정이 보유하고 있던 모든 자원을 해커가 삭제해, 사업을 폐쇄했던 이야기는 아직도 퍼블릭 클라우드 사용자에게 회자되고 있다.
  • 퍼블릭 클라우드 환경은 고객이 직접 관리하는 ‘Self Managed’가 원칙이다.
  • 클라우드 업체는 고객이 사용할 수 있는 백업 서비스를 제공하고 있다. 최초 언급한대로 ‘Self Managed’ 원칙에 따라 고객은 해당 서비스를 스스로 자신의 클라우드 자원에 적용해야 한다.
  • 디지털 트랜스포메이션 이전에는 회사가 제품을 디자인, 개발, 생산, 출고하면 소비자가 구매하는 것으로 하나의 사이클이 끝났다. 그러나 이제는 센서, 애프터 서비스, 고객 피드백 등으로 피드백 고리가 지속된다.
  • 디지털 트랜스포메이션에 있어 가장 커다란 과제 중 하나는 보안, 개인정보 보호 및 규정준수를 보장하는 일이다.
  • 현재 포춘 500대 기업의 80%가 MS의 클라우드 서비스를 이용하고 있다.
  • AWS는 DevSecOps의 핵심으로서 아마존 인스펙터 서비스를 제공한다. 아마존 인스펙터는 AWS에 배포된 애플리케이션의 보안을 개선하고 규정을 준수하는데 도움이 되는 자동 보안 평가 서비스다.
  • 예를 들면 얼마전 유행한 워너크라이 같은 취약점을 가지고 있는지, 원격 루트 로그인이 가능한지, 설치된 소프트웨어가 취약한 버전인지, 실행 중인 프로세스가 버퍼 오버플로우에 취약한 형태로 제작됐는지 등을 찾아서 보고하게 된다.
  • 2015년 3월 제종된 ‘클라우드컴퓨터이법’에 따라 민간 클라우드 사업자가 공공시장에 진출할 수 있는 길이 열렸으나, 여전히 CSAP라는 진입장벽이 버티고 있었다.
  • 가비아도 여러 가지 준비를 마친 2016년 10월 말에 CSAP 심사를 신청했지만, 2017년 5월에 인증을 취득했다. 6개월 이상의 시간을 소요한 것이다.
  • 각 심사위원들이 웬만한 책 두께의 결함 내용을 정리하고 있는 것을 보고 있으면, 과연 우리가 이 심사를 통과할 수 있을까 걱정했던 적이 있을 정도였다.
  • CSAP의 재해복구 규정은 2016년 7월 경주 지역의 지진으로 인해 국가정보원에서 공공 클라우드 사업자의 재해복구 센터 구축 규정 추가를 요구하면서, 심사과정에서 더해졌다.
  • 또한 3개월마다 자체적으로 보안 취약점 점검 실시 후 결과를 제출해야 하며, 1년마다 사후평가를 받아야 하고, 3년마다 갱신 인증을 다시 취득해야 한다.
  • 인터넷의 발전과 함께 상업적 이용을 목적으로, 미리 키를 공유하지 않고도 안전하게 통신할 수 있는 공개키 암호 시스템이 3세대 암호다.
  • 또한 암호화키가 공개돼야 하므로, 암호화키로부터 복호화키를 구할 수 없다. 복호화키를 가져야만 복호화 할 수 있다. 수학에서 연구되는 소수 이론, 인수분해 문제, 이산대수 문제 등이 이것을 가능하게 했다. 인수분해의 어려움에서 일방향 트랩도어 함수가 정의되고, RSA 암호가 개발됐다.
  • 최근 연구되고 있는 4세대 암호는 암호화된 상태에서도 평문 간의 연산이 가능한 암호다.
  • 간단한 예로 1000자리 수를 계산해보면 1000억년 정도의 시간이 소요되므로, RSA 암호는 안전하다고 믿는 것이다.
  • 커버로스는 MIT에서 진행된 네트워크 보안을 위해 만들어진 프로젝트 ‘아테나’에서 만들어진 네트워크 인증 프로토콜이다. 머리가 셋이라는 의미를 보안에 적용해 AAA(Autherntication:인증, Authorization:권한부여, Accounting:추적.감사)라고 표현한다. 현재 커버로스는 네트워크에 존재하는 시스템 간의 사용자 인증에 가장 많이 사용되는 인증 서비스로 사용자를 인증할 때 대칭 키를 사용한다.
  • 역설적이게도 이 암호화 기술은 공격자에게도 훌륭한 공격 기술이 된다. 내부통신망에 침입한 해커는 암호화된 트래픽 속에서 마음 놓고 멀웨어를 풀어놓을 수 있다. 암호화된 트래픽 속에서는 멀웨어를 탐지하기 어렵기 때문이다.
  • 초기 계약부터 침투 후 보고서 작성까지 전체 과정을 7개 단계로 나눠 모델링한 것이다.
  • 모의 침투 실행 표준안 : 1. 사전 상호 계약 -> 2. 정보 수집 -> 3. 위협 모델링 -> 4. 취약점 분석 -> 5. 침투 수행 -> 6. 침투 사후 작업 -> 7. 보고서 작성
  • 랜섬웨어의 어원을 풀어보면, 납치 또는 유괴된 사람에 대한 몸값을 의미하는 랜섬과 컴퓨터 내부에서 동작하는 프로그램을 의미하는 소프트웨어가 결합해 만들어진 것으로 ‘몸값을 요구하는 소프트웨어’라 할 수 있다. 대상이 ‘몸’에서 ‘데이터’로 바뀌었을 뿐이다.
  • 정적 분석과 동적 분석을 구분하는 기준은 악성코드의 실행여부와 관련 있다. 실행하지 않고 원본 및 결과 파일만을 분석하는 경우는 정적 분석으로 분류하고, 직접 실행해 시스템 상의 변화와 증상 등을 추적해 분석 하는 경우는 동적 분석으로 분류한다.
  • 타인에 의해 도용되거나 유출된 정보로 인해 신용카드 결제가 일어난 경우, 카드 소지자는 카드사를 대상으로 비용 청구에 대한 이의를 제기할 수 있다. 카드사는 이에 대해 카드 소지자의 직접 사용 여부를 증명하지 못하면 결제대금을 청구할 수 없다고 규정하고 있다.
  • 피터 틸은 우수한 인재들끼리 갈라져서 시장에서 경쟁하는 것보다 힘을 합쳐 독점 상태로 만드는 것이 훨씬 이득이라는 점을 간파했다.
  • 미국에서 회사 하나가 성공하려면 수백, 수천 개의 기적이 필요한 것도 사실이다. 그러나 인간이 다른 종들과 구별되는 것은 기적을 만들 수 있기 때문이다. 바로 그 기적을 우리는 ‘기술’ 이라고 부른다. 기술이 기적인 이유는 ‘더 적은 것으로 더 많은 일을’ 하게 해주기 때문이다. – 피터 틸
  • 최근에는 오보율을 획기적으로 낮추기 위해서 클라우드 서버에 딥러닝 방식을 도입하고 있다. 지능형 영상 분석 기술은 탐지의 정확성을 높이는 것은 물론, 영업과 마케팅에 활용 할 수 있는 데이터도 제공한다.
  • 또한 단순히 환경지킴이 제도와 연계한 신고 기능으로 그치는 것이 아니라, 환경 모니터링 본사제로 청소년이 온라인 봉사활동을 정식 인증 받을 수 있도록 하는 것을 목표로 했다.
  • 내부 카메라에서 안전벨트 유무를 이미지 분석해 가속페달을 밟아도, 사람이 있는 상태에서 안전벨트가 채워져 있지 않으면 차량이 움직이지 않게 되는 것이다.
Share:
오세용 Domingo

오세용 Domingo

글쓰는 감성개발자 오세용입니다. IT, 책, 축구, 커뮤니티 등에 관심이 많습니다.