데이터 자체를 보호하기 위한 암호화도 같이 도입하면 보다 더 강력
[보안뉴스 문가용 기자] 세상에는 유용하고 쓸모가 넘치는 공개 API들이 많다. 이 API들을 잘 활용하면 애플리케이션과 시스템의 성능이 크게 향상될 수 있다. 게다가 공짜라니, 가성비도 좋다. 그러니 개발자들이 이 공개 API를 탐구하러 여러 커뮤니티를 들락날락거리는 것이다.

[이미지 = iclickart]
하지만 세상에 100% 좋기만 한 것이 어디 있던가. 무료 API에는 또 그 나름의 리스크라는 것이 존재한다. 그걸 전부다 세세히 적기에는 지면이 부족하고, 모든 걸 다 알아야 개발 과정에 API를 사용할 수 있는 것도 아니다. 그래서 가장 먼저 고려해야 할 것들을 몇 가지 정리해보았다.
데이터 사용
API가 무료로 대중들에게 공개된다는 것의 의미를 액면 그대로 ‘공짜’로 인지해서는 안 된다. 돈 안 낸다고 정말로 공짜인 것은 아니기 때문이다. 우리는 다른 방식으로 뭔가를 지불하고 있다. 트위터가 좋은 예다. 트위터 자체는 누구나 무료로 이용할 수 있다. 하지만 이용자의 이용 패턴이나 검색 현황, 위치 정보 등의 데이터는 트위터가 따로 판매해 수익을 남긴다. 즉 우리는 개인정보를 트위터에 지불하고 채팅을 하는 것이다.
그러므로 공짜 API로부터 요청되는 데이터가 무엇인지부터 확인하는 게 중요하다. 예를 들어 주소를 입력하면 우편번호를 찾아내주는 API를 사용한다고 했을 때, 주소 검색 기록이 어딘가로 팔리거나 요구되지 않는지를 살펴야 한다는 것이다. 당신의 경쟁업체 이러한 정보를 우회적으로 노릴 수도 있고, 실제 그런 사례들도 존재한다.
API를 사용하기로 결정하기 전에, 최소한 API를 통해 전달되는 정보들이 외부에서 사용되는지는 반드시 짚고 넘어가야 안전하다. 또한 API의 사용과 관련된 모든 사항들을 문서화하고 API 제공자 측에서 갑작스럽게 변경을 적용했을 때 이 문서들을 근거 자료로 삼아 해명을 요구해야 한다. 공짜 API인줄 알고 사용했다가, 나중에 API의 일부 기능(보통은 데이터를 판매하기 시작한다)이 교묘하게 바뀌었는데도 한참을 모르고 있는 예가 수두룩하다.
정말 보안이 중요하다고 한다면 API를 사용하되 무작위로 가짜 정보를 입력하는 작업을 꾸준하게 지속하는 것도 좋은 방법이다.
인증
앞으로 인증을 요구하는 API가 더 늘어날 전망이다. 간단하지만 안전성이 크게 높지 않은 방법으로는, URL에 있는 긴 문자열이나 쿠키를 인증 도구로 사용하는 것이 있다. 하지만 누구나 볼 수 있고 따라서 침해 가능성이 높다. 앞으로 API는 일정 기간 동안이나 정해진 횟수만 활용 가능하도록 이용성을 제한시킬 수도 있는데, 인증 과정이 무용지물이 되어버리면 제대로 돈을 낸 유료 고객들이 피해를 입게 된다. 게다가 갑자기 트래픽이 늘어 아무도 사용 못하는 현상이 발생할 수도 있다.
인증이 필요한 API를 사용한다면, 그 비밀 키를 세심하게 관리해야 한다. 그리고 주기적으로 바꿔주는 것도 필요하다. 기업들이 주기적으로 비밀번호를 바꾸는 것과 비슷하게 관리해야 한다는 것이다. 깃허브 계정에 저장해놓고, 그 계정을 여러 사람이 공유한다거나, 웹 페이지 소스 코드 어딘가에 묻어놓고 아무도 못 보겠지, 라고 생각하는 건 No More!
암호화
모든 절차와 과정을 거쳐 무료 API를 사용하기로 했다면, 해당 API를 통해 처리할 정보 자체의 보안을 고민해야 한다. 물론 데이터가 얼마나 민감한가에 따라 결정을 달리해야 하겠지만 암호화 기술을 적용해보는 것도 고려해봄직한 일이다. 필수는 아니지만, 보다 더 안전해서 나쁠 것은 없다. 요즘 데이터가 가지고 있는 가치를 생각해보면 말이다.
API 응답은, 해킹 공격처럼 다루라
API 응답이라고 해도 평소 다른 데이터를 다루듯 해야 한다. 즉 해당 응답의 출처가 확실한지, 예상된 응답과 얼마나 다르거나 같은지 등을 확인해야 한다는 것이다. 어떤 API의 경우 그냥 ‘겉으로’ 보기에는 정상적이지만 XSS나 SQL 주입 등을 통한 시스템 익스플로잇에 활용될 수도 있다.
지금 당장 좋아 보이는 API라고 할지라도, 당장 내일 침해될 수 있다. 그러니 API의 응답도 점검해야 한다. 조금이라도 의심이 되는 건, 수정할 수 있으면 수정하고, 아니면 과감히 버리라. 예를 들어 주소를 입력하면 우편번호를 찾아주는 API의 경우, 7~8자리 응답이 돌아오거나 가운데 ‘-’ 기호가 없는 데이터가 온다면 의심하라는 것이다.
물론 이 외에도 API를 무료로 사용하는 데 대한 고려사항은 많다. API마다 다르고, 개발하려는 애플리케이션마다 다르다. 상황에 따라 개발자나 보안 담당자가 후보로 오른 API를 꼼꼼하게 점검하는 과정이 반드시 필요핟. 핵심은 이거다. ‘공짜일수록 더 조심하라.’
글 : 리치 카셀베리(Rich Casselberry)
[국제부 문가용 기자(globoan@boannews.com)]
Copyrighted 2015. UBM-Tech. 117153:0515BC
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>