2015년 9월 4일 금요일

5G 비젼포럼 "5G New Opportunity in a Connected World"

5G 시대, 언제 어디서나 LTE보다 1천배 빠른 속도로 서비스를 제공하는 초연결 사회(Hyper-Connected society)는 어떤 모습일까?
5G 통신혁명은 속도 그 이상의 변화를 예고하고 있으며, 이러한 변화는 새로운 비즈니스 기회로 다가올 것입니다.

이에 5G 통신에 대한 비전, 주요 핵심기술 소개를 통해 글로벌 경쟁력 강화 방안 및 대응전략을 제시하고자 5G New Opportunity in a Connected World 란 주제로 
9월 10일(목) 여의도 중소기업중앙회 그랜드홀에서 [5G 비전포럼 2015]을 개최합니다.
























효과적인 자동화 테스팅 설계를 위한 7가지 Tip

자동화 기능테스트(automated functional test) 또는 유저인터페이스 테스트(UI Test)는 흔히 버그를 찾을 만큼 성능이 우수하지 못하다고 여겨지고 있습니다. 그러나 이는 테스트 툴이나 프레임웍의 문제이기보다는 디자인이 제대로 설계되지 않았기 때문입니다. 우수한 자동화 기능테스트 및 UI 테스트를 설계하는데 도움이 되는 7가지 팁에 대해 살펴 봅니다.

1. 단순히 클릭만 하지 말고, 수행 후 피드백 여부를 체크하기
2. 멈추지 말고 기다리기
3. 인덱스가 아닌 별도의 탐지기(locator) 사용하기
4. 규칙적인 표현으로 분류 순서 점검하기
5. 스스로 반복하지 않기
6. 조건문 사용하지 않기
7. 재사용 가능한 무작위 데이터를 만드는 자바스크립트를 사용하기

효과적인 테스트를 위한 설계의 중요성
  • 자동화 기능테스트를 효과적이고 지속 가능하게 만드는 몇 가지 예를 살펴보았음.
  • 지금까지의 자동화 기능테스트의 가장 큰 단점은 유지하기 힘들고 버그를 찾아낼 만큼 강력하지 않다는 것임.
  • 잘 설계된 테스트는 유지하기 어렵지 않고 애플리케이션의 상태를 제대로 체크하고 사용자와 애플리케이션 차원에서 중요한 기능을 잘 테스트하며 버그도 잘 찾아낼 수 있을 것으로 기대됨

2015년 9월 3일 목요일

모바일 html5를 통한 소프트웨어 개발 기술 변화

특별한 OS나 프로그램을 설치하지 않아도 브라우저만 있으면 동작하는 html 기반인 html5는 html에서 제공되는 기능에 다양한 그래픽과 멀티미디어 효과는 물론 액티브엑스(ActiveX)를 설치해야만 가능하던 기능까지 지원이 가능합니다. 이러한 이유로 html5를 활용한 웹 사이트와 어플리케이션들이 많이 만들어지고 있지만, html5의 파급 효과는 다른 곳에서 찾을 수 있습니다. 바로 모바일 플랫폼의 특성을 타지 않는다는 것입니다.

모바일 시장을 양분하고 있는 iOS와 안드로이드, 그리고 그 뒤를 쫓고 있는 MS는 상호 호환성이 제로이기 때문에 어플리케이션을 만들 때는 (PC 시장과 마찬가지로) 모바일 플랫폼을 선택해야 합니다. 하지만 (PC 시장과 마찬가지로) html을 활용하면 이러한 제약이 없어집니다. 브라우저를 통해 다양한 플랫폼에서 서비스를 제공할 수 있기 때문입니다. PC 시장에서 다양한 어플리케이션 개발 환경이 있었지만 웹 어플리케이션으로 통일되었던 것처럼 모바일 시장에서도 비슷한 과정을 따를 것으로 예상되고 있습니다. 이번 회에서는 PC 기반의 웹 환경에서 모바일 환경으로 변화하는 것에 따른 html5의 기술 구성과 모바일에서 높은 성능을 발휘하는 활용법에 대해 살펴보도록 합니다.

동적 임베디드 소프트웨어 테스트와 카 인포테인먼트 시스템 테스트 적용 성과

임베디드 소프트웨어는 ‘ 실시간 보증 , 자원 부족 , 런 - 타임 테스트 , 운용 환경 보존 ’ 과 같이 테스트 제약이 심한 환경에 배치되기 때문에 테스트가 쉽지 않습니다 . 본 논문에서는 운영체제가 프로세스 제어를 목적으로 관리하는 프로세스 제어 블록을 해킹함으로써 테스트 정보를 수집하는 동적 임베디드 소프트웨어 테스트 방안을 제안합니다 . 현재 ‘ 메모리 , 성능 , 프로세스 간 통신 ‘ 을 테스트하는 자동화 도구인 AMOS 를 개발하였고 , AMOS 는 자동차 산업의 카 인포테인먼트 시스템의 실차 테스트에 적용되어 품질 향상과 개발 비용 절감의 효과를 보이고 있습니다 .

소프트웨어 테스트는 개발 방법론이나 제품의 특성에 따라 개발 초기부터 개발 단계의 목적과 테스트 환경에 맞추어 차별화된 방법으로 이루어져야 합니다 . 테스트는 개발 산출물에 대한 리뷰 및 소스 코드 분석과 같은 정적 테스트 방법과 소스 코드를 실행하면서 하는 동적 테스트 방법으로 구분합니다 . 정적 테스트와 동적 테스트는 서로 보완적이어서 어느 하나가 다른 것을 대체할 수 없습니다 [Broekman et al., 2003]. 동적 테스트는 테스트 대상의 범위에 따라 단위 , 통합 , 시스템 테스트로 세분화되며 , 소스 커버리지가 95% 이상 되도록 단위 테스트를 면밀히 해도 통합 및 시스템 테스트를 피할 수는 없습니다 . 임베디드 소프트웨어의 경우 이뮬레이터 , 레퍼런스 보드 , 실제 타겟의 테스트 수행 환경에 따라서도 그 방법이 차이가 납니다 .

일반적으로 임베디드 시스템은 제한된 자원으로 최적의 성능을 위하여 제작되기 때문에 시스템을 구성하는 하드웨어와 소프트웨어들의 결합력이 매우 높습니다 . 높은 결합력 때문에 일부 소프트웨어만 독립적으로 테스트하기 힘들며 , 시스템 기능을 부분적으로 확인하기 위한 단위 , 통합 테스트가 쉽지 않습니다 . 특히 단위 , 통합 레벨의 동적 테스트는 테스트 드라이버나 상대 컴포넌트를 대신할 시뮬레이션 장비를 갖추어야 하는 경제적 어려움도 있습니다 . 따라서 많은 산업현장에선 소스코드 분석과 같은 정적 테스트 후 , 단위 및 통합 테스트를 생략하거나 비전문적으로 테스트를 수행한 후 , 실제 타겟에서 전체 시스템에 대한 동적 테스트에 집중합니다 [SEC, 2004].

문제는 최종 테스트 단계인 타겟에서의 동적 테스트에서 발견된 결함은 그 원인과 위치를 파악하는 데 수 많은 시간과 비용이 소모된다는 점입니다 . 본 논문에서는 시스템이 타겟에 배치되어 실제 운용되는 환경에서 탑재된 모든 소프트웨어 및 하드웨어 컴포넌트들이 시스템의 품질 요구사항에 맞춰 올바르게 동작하는 가에 대한 동적 테스트와 동시에 결함의 원인과 위치 파악을 자동화한 동적 임베디드 소프트웨어 테스트 방안과 이를 구현한 AMOS 도구를 제안하고 이를 산업체 적용한 결과 및 경제적 효과를 소개합니다 .

애자일 SW개발을 향상시키는 클라우드 컴퓨팅의 6가지 장점

클라우드 컴퓨팅과 가상화로 가상머신을 활용하여 프로젝트관리, 이슈관리, 자동화 테스트가 가능한 소프트웨어 빌드를 클라우드 기반의 서비스로 이용할 수 있습니다. 이를 활용하는 애자일 개발팀은 물리서버의 한계 극복, 업무의 병렬처리, 혁신활동 고취, 신속한 업무처리 등의 6가지 장점들로 프로젝트를 잘 수행할 수 있을 것으로 기대합니다.

1. 클라우드 컴퓨텅으로 테스팅, 스테이징 서버(staging server)를 무한히 제공 가능
2. 애자일 개발 업무를 병렬 처리할 수 있음
3. 혁신과 실험 정신이 장려됨
4. 지속적인 통합/인도(Delivery)가 강화됨
5. 많은 개발 플랫폼과 외부 서비스를 이용할 수 있음
6. 코드 분기와 병합이 쉬어짐

가상화와 클라우드 컴퓨팅으로 개발과 테스트에 사용되는 물리  서버의 한계에서 벗어날 수 있습니다.
가상화와 클라우드 컴퓨팅은 지속적인 통합/인도를 하려는 애자일팀에게는 필수입니다.
추가적인 서버 공급 때문에 발생되는 시간지연이 사라져 기존은 단계적인 업무진행방식이 좀 더 병렬적으로 바뀝니다.
결국 회사는 비즈니스 목적에 맞는 혁신적인 개발 프로젝트를 손쉽게 추진할 수 있습니다.

2015년 9월 2일 수요일

보안테스트 기법의 효율적 대안 'Hybrid Smart Fuzzing'

소프트웨어 기술의 발달로 일상생활에서부터 금융이나, 의료, 공공 기관 까지 사회 전반에 거쳐 많은 IT 솔루션들이 출시되고 있습니다. 그러나 이렇게 제공되는 서비스의 질과 양이 증가하고 다양해짐에 따라, 이를 위협하는 공격 또한 비례적으로 증가하고 있는 추세입니다. 실제로 2014년 4월에 보안 패치 이전의 보안취약점을 활용한 OpenSSL HeartBleed 제로데이 공격과, 2010년 7월의 이란 원자력 발전시설을 공격한 Stuxnet, 2011년 미국의 에너지 기업을 공격한 나이트 드래곤 등이 그 예입니다. 이와 같이 기업이나 공공 기관의 데이터를 탈취하기 위하여 지속으로 취약점을 공략하는 APT공격, 2010년 Paypal 사이버 공격과 같이 항상 외부에 노출되어 있어 공격의 대상이 되는 웹 사이트 공격 등 많은 서비스들이 SW 자체 보안 취약점으로 공격을 당하고 있습니다. 이에 대한 해결책은 어떤 것들이 있는지 엔키소프트의 이승한 개발 팀장 의견을 들어보았습니다.

Q. 현재 사이버 보안 취약 위험은 어떤 수준인가요? 

미국의 정보 기술 연구 및 자문 회사인 Gartner의 보고서에 따르면, SW 보안사고의 75%는 취약점을 가지고 있는 응용프로그램에서 발생한다고 합니다. 보안, 스토리지 솔루션회사인 Symantec의 보고서에 따르면 2012년 한해 동안 발견된 취약점이 5,291개에 이를 정도입니다.

Q. 제목에서 언급하신 Hybrid Smart Fuzzing도 그 중 하나인가요? 

 예. ‘퍼징’은 이러한 노력 중 취약점을 발굴하기 위한 방법으로 1989년에 Wisconsin-Madison 대학의 Barton Miller 교수 연구실에서 개발된 일종의 SW 보안 테스트 기법입니다. 무작위로 SW에 데이터를 입력하여 에러가 발생하는 경우를 탐지함으로써 취약점을 검출할 수 있습니다. 그러나 무작위로 도출된 입력 값 기반의 퍼징은 특정 취약점에 대한 도출이 어렵고, 많은 시간을 소모하는 문제점이 있습니다.

보안 소프트웨어 시장과 시큐어 코딩

보안 소프트웨어(security software)는 컴퓨터 시스템이나 컴퓨터 네트워크를 침해해서 승인 받지 않고 자원을 사용하는 것을 막아주는 컴퓨터 프로그램 혹은 라이브러리를 말한다. 이것은 컴퓨터 보안(computer security)과 네트워크 보안(network security)으로 구분할 수 있t습니다.

한국IDC의 예측에 따르면, 국내 보안 소프트웨어 시장은 향후 5년간 연평균 7% 성장이 전망됩니다. 2014년 대비 7.6%로 성장하여 3,386억원을 기록했는데, 2019년에는 4,940억원 규모에 이를 것으로 내다봤습니다. 현재는 지능화된 SIEM이나 ESM(Enterprise Security Management)등과 같은 보안과 취약점 관리(SVM: Security & Vulnerability Management)등과 같은 보안과 취약점 관리(SVM: Security & Vulnerability Management)분야에서 약 13%대로 가장 큰 폭의 성장을 나타냈습니다. 특히, SIEM솔루션이 주목을 받으면서 기업의 보안 투자가 늘어난 것으로 보입니다.