본문 바로가기

Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례

공개SW로 이기종 OS 간의 네트워크 프로토콜 문제 해결

우리 게임산업은 국가의 미래성장동력이면서 대표적인 고부가가치 산업으로 꼽힌다. 이런 게임의 성장 가능성에 주목한 웰비아닷컴은 게임 서비스의 현실적 위협으로 떠오른 각종 보안 위협에 대응할 방안을 모색했고, 그 결과물로 온라인 게임 보안 솔루션인 XIGNCODE를 출시했다. 특히 이 회사는 XIGNCODE의 개발 과정에서 겪은 이기종 OS 간의 프로토콜 문제로 인한 보안 업데이트 장애를 공개SW인 libCURL을 도입해 해결하고, 자사의 솔루션 개발 전반에 공개SW 도입을 확대하는 계기를 마련했다. 이로써 웰비아닷컴은 고객 요구에 더 민첩하게 대응 가능한 기술 역량도 함께 확보한 것으로 평가된다

- 기     관 웰비아닷컴
- 수행년도 2009년~현재
- 도입배경 보안 업데이트의 네트워크 프로토콜 문제 대두, 리눅스 지원 요구
- 솔 루 션 LibCURL, Boost, Redmine, Git
- 도입효과 : 보안 업데이트의 안전성 확보, 더 유연해진 크로스 플랫폼 지원, 공개SW 도입 확대, 고객 만족도 제고

정보보안 전문 기업인 웰비아닷컴은 연평균 20%씩 성장하는 게임산업을 둘러싸고 점차 고도화되는 해킹 기술의 대처 방안을 연구했다. 그 과정에서 논-클라이언트 봇(Non-Client Bot)과 치트엔진(CheatEngine) 등과 같이 기존 보안 솔루션이 약점을 지닌 해킹 및 리버싱 기술에 대응하기 위해 ‘일회용 실행코드’와 ‘WIN32 API 패턴 분석을 통한 악성 코드 차단’ 기술을 개발하고 기술 특허를 취득했다. 이러한 기술적 성과를 바탕으로 웰비아닷컴은 온라인 게임 보안 솔루션인 XIGNCODE 개발을 본격적으로 시작했다.



보안 업데이트 문제 대두


XIGNCODE의 핵심 기술 중 하나인 ‘일회용 실행코드’의 기반 구조를 검증한 웰비아닷컴은 이후 실질적인 보안 기능을 수행하는 프론트엔드 개발을 시작했다. 그 개발 과정에서 실시간 보안 업데이트를 위한 데이터 전송 기능을 고수준의 네트워크 라이브러리인 wininet를 활용해 개발했지만, 악성코드 감염에 취약해 업데이트가 되지 않거나 애플리케이션이 중단되는 문제가 발생했다. 이를 해결하기 위해 winsocket으로 코드를 변경해 보기도 했지만, 이기종 OS 간 프로토콜 호환성 문제로 인해 업데이트 문제가 또다시 불거졌다.


이에 대해 신영진 웰비아닷컴 연구소장은 “지능화된 해킹 기술에 신속히 대응하기 위해서는 실시간 보안 업데이트 기능은 필수”라고 강조하면서 “불특정 다수의 사용자를 대상으로 한 서비스이기에 관련 문제를 예측하거나 자체 개발로 해결하는 데 어려움이 컸다”고 설명했다.


예상치 못한 기술 이슈가 이어지면서 웰비아닷컴은 근본적인 해결책 마련을 고심하게 됐다. 이러한 이슈를 해결하기 위해서는 RFC에 정의된 프로토콜 표준에 따라 관련 기능을 개발하는 것 외에도 특정 포트나 리다이렉션 등 프로토콜별 응답코드에 따라 모든 예외 처리도 개발해야 하지만 그 규모가 방대해 현실적으로 불가능했다.


결국 대안을 찾기 위해 다양한 솔루션이 검토됐고, 마침내 보안 업데이트 기능에 공개SW 라이브러리인 libCURL을 도입하기로 의견이 모아졌다.



XIGNCODE 시스템 구성도


공개SW로 보안 업데이트 이슈 해결

libCURL은 데이터 전송을 위한 공개SW 멀티 프로토콜 라이브러리로 DICT, FILE, FTP, FTPs, HTTP, HTTPS, IMAP, POP3 등 다양한 멀티 프로토콜을 지원한다. 프로젝트 완성도가 높고 이미 전 세계적으로 500만 명 이상이 사용해 안전성과 호환성이 검증된 점도 도입을 결정하는 데 긍정적으로 작용했다.


XIGNCODE의 보안 업데이트 개발에 libCURL을 적용하자, 회사 측이 기대했던 대로 지금까지 문제가 됐던 모든 이슈들이 해결됐다. 멀티 프로토콜이 지원돼 추가적인 개발 없이도 고객사가 원하는 프로토콜로 서비스를 제공하게 된 덕분에, 공개SW의 도입은 곧 고객 만족으로도 이어졌다. 이런 성과는 기업 내에 만연해 있던 ‘NIH 증후군(not inverted here syndrome)’ 탓에 자체 개발만을 선호하던 개발 문화를 비 핵심 영역에는 과감히 공개SW 도입을 고려하는 분위기로 탈바꿈시켰고, 이로써 회사의 개발 역량과 자원을 더 핵심적인 영역에 집중시킬 수 있는 전사적인 효과도 얻게 됐다.



XIGNCODE 보안 업데이트 구성


공개SW 도입이 공개SW 이용 확대 이끌어

무엇보다 공개SW의 도입이 다른 공개SW의 도입으로 이어졌다는 점에서 회사는 크게 만족하고 있다. C++ 클래스 객체의 수명을 관리하는 스마트 포인터 등을 이용하기 위해 공개SW 라이브러리인 ‘Boost’가 도입됐는데, 이는 C++ 표준 라이브러리보다 확장된 기능을 제공해 개발 편의성이 우수하다는 평가다. 뿐만 아니라 최근 게임 서버로 이용되기 시작한 공개SW인 리눅스에 XIGNCODE를 포팅하는 데에도 크로스플랫폼을 지원하는 Boost가 기여했다는 게 신영진 연구소장의 설명이다.


이렇게 개발된 XIGNCODE는 특허 기술인 ‘일회성 실행코드’와 ‘WIN32 API 체크’를 비롯한 3단계 진단 알고리즘과 서버 및 클라이언트의 이중진단 방식으로 보안성을 강화했다. 이 덕분에 서버에서 클라이언트의 변조 여부를 탐지하고 차단하거나, WIN32 API의 호출빈도와 사용된 함수의 패턴으로 변종 해킹 툴을 찾아낼 수 있어 다양한 게임 보안 위협으로부터 서비스 이용자와 제공자 모두를 보호할 수 있다. 또한 개발 기획 단계부터 게임에 특화된 설계로 시스템 리소스 활용을 고려하고 게임 진행에 미치는 영향을 최소화한 덕분에 서든어택, 스페셜포스, 아바, 테라, 마계촌 등 주요 온라인 게임의 국내외 서비스에 탑재되는 성과를 거뒀다.



시각화된 분석 결과 보고


신속한 고객 대응 위해 ‘공개SW 스크립트 언어’ 도입 검토
향후 웰비아닷컴은 증가된 보안 위협에 더 신속히 대응하고자 XIGNCODE에 스크립트 언어를 활용할 계획이다. 스크립트 언어를 도입하면 문자열 처리나 메모리 할당 등이 자동화돼 개발이 용이해지고 코드가 간결해져 더 빠른 고객 대응이 가능해질 것이란 판단에서다.


이에 따라 다양한 스크립트 언어 중에서 특히 공개SW인 팔콘(Falcon)에 주목하고 있다. 점차 늘어날 64비트 온라인 게임을 지원하는 부분에서 정수를 더블형으로 처리해 53비트만 이용 가능한 타 스크립트 언어와 달리, 팔콘은 온전히 64비트를 지원할 뿐 메타 컴파일러가 지원돼 코드 보호를 위한 난독화에도 유리하기 때문이다.


[인터뷰]

“오히려 공개SW의 보안성이 더 우수”
신영진 웰비아닷컴 연구소장

Q> 공개SW는 과연 보안에 취약한가
공개SW가 보안에 취약하다는 일반적인 인식은 사실과 다르다. 이런 인식은 단지 코드가 공개돼 있기 때문에 보안에 더 취약할 것이란 막연한 생각에서 비롯된다. 오히려 일부 기업들은 자사의 솔루션에서 발견된 보안 취약점을 숨기는 경우가 많지만, 공개SW의 경우는 그렇지 않다. 공개SW는 누구나 코드를 분석하고 보안 취약점을 개선할 수 있을 뿐 아니라 새로운 버전을 배포하는 주기 면에서도 상용SW보다 대체로 더 빠르다.


Q> 공개SW 커스터마이징에 대한 생각을 말해 달라
공개SW의 커스터마이징은 ‘양날의 칼’이라 할 수 있다. 공개SW의 코드를 수정한다면 앞으로 등장할 업데이트를 전혀 반영하지 못할 수 있으며, 업데이트를 반영하더라도 작업에 부하가 큰 단점이 있다. 그러므로 불가피하게 커스터마이징을 꼭 해야 하는 상황이라면 차후 업데이트를 통해 커스터마이징 사항이 반영될 수 있도록 공개SW 프로젝트에 직접 참여(기여)하는 것이 바람직하다고 생각한다.




- 마이크로소프트웨어 조수현 기자 suhyeoni@imaso.co.kr

- 공개SW 역량프라자
맨 위로
맨 위로