2016년 1월 26일 화요일

핀테크 보안

핀테크에서는 다양한 보안 기능을 추가하고 있지만 대부분은 새로 만드는 것이 아니라 기존의 보안 기술을 활용하는 것이 많다. 이러한 기술의 특징과 장단점을 잘 파악하여 핀테크와 무리 없이 연동되도록 해야 한다.

핀테크는 다른 서비스에 비해 정책적인 제약이 많기 때문에, 보안에 대해 기술적인 접근과 함께 비즈니스적인 접근을 병행해야 기술과 정책을 조화롭게 구성할 수 있다. 핀테크 보안 기술은 하드웨어적인 요소가 많기 때문에 이를 소프트웨어적으로 변환할 수 있는 방안도 필요하다.

핀테크에서 요구되는 세가지 보안 요소

완벽한 보안은 없다. 다만, "정보의 가치"보다 "정보를 해킹하는 비용"이 더 발생하도록 보안을 구축하는 것이 보안의 최종 목적으로 볼 수 있다.

보안의 3요소는 기밀성, 가용성, 무결성(표 1 참조)이다. 철저한 보안을 위해서는 기밀성과 무결성을 높이면 되지만, 이로 인해 가용성은 떨어지게 된다. 세가지 보안 요소에 중요도를 적절히 배분하는 것이 적정 보안을 유지하는 방법이다.

<표 1> 보안의 3요소

핀테크 보안의 3요소는 조금 다르게 정의된다. 효율성, 편의성, 안전성 등 3가지 요소로 볼 수 있다.(표 2 참조). 불과 몇 년 전만해도 금융은 우리나라만 생각하면 되었지만 금융 서비스가 온라인으로 옮겨가면서 글로벌 표준에 대한 인식이 확대 되었다.

<표 2> 핀테크 보안의 3요소

기존의 금융 서비스는 일관된 서비스만 제공하였지만 다양한 디바이스, 시스템과 연계해야 하는 핀테크는 비즈니스 흐름에 따라 소프트웨어를 구성해야 한다. 보안도 비즈니스 관점으로 접근하여 시스템의 효율성을 높일 필요가 있다.

핀테크는 이용자가 다양해지기 때문에 인증에 대한 보안이 강화되어야 한다. 하지만, 최종 사용자(End User)의 디바이스는 모바일처럼 이동성이 강할 수도 있어 편의성도 고려해야 한다. 더 보기 >>>

2016, 소프트웨어 개발 5대 핫 트렌드

2016년에도 IT 운영, 앱 개발, 데이터 관리가 지속적으로 관심 대상이 될 것으로 보인다. 특히 사물인터넷(IoT) 생태계 주도권 경쟁이 심화되고 이를 기반으로 한 디지털 트랜스포메이션 (Digital Transformation)이 가속화될 것으로 전망된다( IDC FutureScape 2016: Korea Top Predictions). 한국CA에서 바라보는 5대 이슈는 사물인터넷, 컨테이너에 의한 개발 가속, 애자일 보안, 애널리틱스 고객 경험, 블록체인이다. 

사물인터넷(IoT)의 애플리케이션 실용화: 사용자 계정처럼 기기에도 계정이 부여되어 인증과 신뢰를 갖게 하는 사물 계정(Identity of Things)이 확산될 것이다. 이를 위해 계정부여와 접근관리(IAM), 기기간 상호작용, IoT간 상호작용을 위한 소프트웨어 개발이 부상할 것이다. 

컨테이너를 통한 개발 가속화: 기업은 컨테이너와 마이크로서비스를 이용해 복잡한 아키텍처와 소프트웨어 개발을 유연하고 손쉽게 그리고 빠르게 진행할 수 있다. 이런 기술은 애플리케이션 개발·구축·업그레이드 방식을 변화시킬 것이고, 다양한 요구사항을 순발력 있게 처리할 수 있는 체계를 갖추게 될 것이다. 

애자일(Agile) 보안: 애자일 방식의 소프트웨어 개발은 증가하고 있고, 이는 시작 단계부터 보안을 고려해야 효과적인 프로젝트를 수행할 수 있음을 의미한다. 여기에는 자주 사용하는 API(Application Programming Interface)에 대한 보안이 강화되면서 신뢰 받는 고객 경험을 이끌어낼 것으로 본다. 

빅데이타와 애널리틱스를 통한 고객 경험 구현: 애널리틱스는 BI(Business Intelligence) 단계에서 최근에는 거래용 데이터와 빅데이터로 발전했다. 고객 경험을 향상 시켜주는 실시간 애널리틱스는 새로운 가치를 창출해줄 것이고 일정한 표준을 제시할 것이다. 특히, ‘1인 가구’ 증가에 따라 기업은 매우 다양한 개인별 맞춤 서비스를 제공해야 한다. 애널리틱스에 의한 의미 있는 인사이트 도출이 필요함을 의미하며 데이터 사이언스 중요성이 높아질 것이다. 

블록체인(Blockchain) 기술: P2P 네트워크을 통한 이중지불 방지에 쓰이던 기술이 바로 블록체인이다. 제3자가 거래를 보증하지 않아도 거래 당사자끼리 가치를 교환할 수 있다는 점이 핀테크와 결부되어 새로운 금융시대를 여는 화두가 되고 있다. 컴퓨터 네트워크 기반으로 하며 프라이버시가 핵심인 블록체인 기술은 고객 대응에서 매우 유연하고 민첩해서 사물인터넷과 결합되어 개인과 기업의 디지털 트랜스포메이션 실현에 매우 중요한 역할을 할 것이다. 

정적 분석과 코드 커버리지에 대한 이해

‘정적 프로그램 분석’ (Static program analysis)은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 다시 말해, 어떤 프로그램을 분석할 때 그 프로그램을 실행시키지 않고 ‘그 자체’를 분석하는 것이라고 해석할 수 있다. 프로그램에 내재한 논리적 오류는 일반적으로 프로그램을 실행하여 확인하지 않으면 찾기가 힘들지만, 정적 분석은 이러한 오류를 찾아내는 데 도움을 줄 수 있다.

대부분의 경우에 분석은 소스 코드의 버전 중 하나의 형태를 가지고 수행되며, 가끔은 최종 바이너리를 가지고 분석한다. 이에 반하여, 프로그램을 실행 하여 분석하는 것을 ‘동적 프로그램 분석’이라고 한다.  

정적 분석은 코드를 실행하지 않고도 모든 프로그램의 구성 요소를 검사하여 다양한 결함을 검출 할 수 있다는 장점이 있다. 또, 테스팅 도구들은 사용자의 적절한 가이드로 중요한 프로그램 구성 요소들을 실행해가면서 그 결과가 예상된 것 인지를 확인할 수 있는 메커니즘을 제공함으로써, 결함들을 검출 할 수 있도록 해준다. 이러한 정적분석이 ‘테스팅을 완전히 대신할 수 있는가’에 대한 의견이 분분한 가운데, 슈어소프트테크의 권민혁파트장을 만나  이에 대한 의견을 들어보았다. 





권민혁 파트장 (슈어소프트테크 시험자동화 연구소)


Q: 요즘 정적 분석기법이 적용된 도구들에 대한 관심이 높아지고 있는데, 이유가 뭘까요?

최근의 소프트웨어 개발 방법론의 흐름을 보면 과거 보다 소프트웨어 정적 분석 기술과 소프트웨어를 동적으로 테스트하는 테스트 자동화 도구에 대한 관심이 높습니다. 현대의 소프트웨어 는 너무나 크고 복잡해서 사람이 직접 프로그램의 모든 동작을 꼼꼼히 확인하기란 매우 어려운 일이기 때문일 텐데요. 소프트웨어의 품질이 중요시되는 경우, 개발자와 품질 관리자는 전문적인 도구들을 필요로 하게 됩니다. 정적 분석 기법이 적용된 도구와 자동화된 테스트 도구들은 이런 요구에 부합하는 도구들이라고 볼 수 있죠.하지만 산업계의 품질과 관련된 다양한 요구만큼, 도구를 도입하거나 사용할 때 발생할 수 있는 오해도 많이 있습니다. 더 읽기