ISSN : 1738-7531 보안공학연구논문지 Journal of Security Engineering 제 14 권, 제 1 호,2017 년 2 월 목차 군사보안 전술망통합운용에따른효과적인사이버작전을위한전투피해평가모델연구 1 강정호 인터넷보안마코프체인을이용한웹사이트의악성코드감염예측에관한연구 9 김성현, 유진호추상구문트리메타모델을통한코드의보안취약성가시화 21 손현승, 김영철증강현실데이터리소스변조방지를위한패턴검출기법연구 33 김동현, 김석수 암호 암호용디바이스에대한구현공격에강인한이중멱승알고리듬 43 박은수, 하재철 보안관리 디지털환경변화에따른주요기반시설위험대응정책방향에관한연구 59 유지연, 정나영 논문지논문투고안내논문지논문투고규정논문심사규정논문발간규정포상및징계규정연구윤리규정
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017), pp.21-32 http://dx.doi.org/10.14257/jse.2017.02.04 추상구문트리메타모델을통한코드의보안취약성가시화 손현승 1), 김영철 2) A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel Hyun Seung Son 1), R. Young Chul Kim 2) 요약 최근정보시스템들이해킹되어개인정보유출사고가빈번하게발생함에따라정부는시큐어코딩가이드를제정하고전자정부관련정보화사업에의무적으로적용하도록하였다. 그러나일반개발자가시큐어코딩의모든소프트웨어의취약점을알고구현하기란쉽지않다. 그리고기개발된소프트웨어에취약점이있는지확인하기는어렵다. 그러므로소스코드레벨에서보안취약성을자동으로분석하고그결과를가시화하는기술이필요하다. 본논문에서는소프트웨어의가시화기술을시큐어코딩에적용하여보다쉽게보안취약성을분석할수있는방법을제안한다. 핵심어 : 메타모델, 보안취약점, 시큐어코딩, 추상구문트리 Abstract Recently, as information systems have been hacked and personal information leakage accidents have occurred frequently, the korea government enacted a secure coding guide and made it mandatory for informatization projects related to the electronic government. However, it is not easy for general developers to know and implement all software vulnerabilities in secure coding. Also, it is difficult to check for vulnerabilities in previously developed software. Therefore, there is a need for techniques to automatically analyze security vulnerabilities at the source code level and visualize the results. In this paper, we propose a method to analyze security vulnerability more easily by applying software visualization technology to secure coding. Keywords : metamodel, secure vulnerability, secure coding, abstract syntax tree Received(January 03, 2017), Review request(january 04, 2017), Review Result(1st: January 19, 2017, 2nd: January 31, 2017) Accepted(February 06, 2017), Published(February 28, 2017) 1 Dept. Computer Information Comm., Hongik Univ., Sejong-ro, Jochiwon-eup, Sejong, 30016, Korea email: son@selab.hongik.ac.kr 2 (Corresponding Author) Dept. Computer Information Comm., Hongik Univ., Sejong-ro, Jochiwon-eup, Sejong, 30016, Korea email: bob@hongik.ac.kr * 이논문은 2015년교육부와한국연구재단의지역혁신창의인력양성사업의지원을받아수행된연구임 (NRF-2015H1C1A1035548) ISSN: 1738-7531 JSE Copyright c 2017 SERSC 21
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel 1. 서론 최근모인터넷쇼핑업체가사이버범죄자에의해해킹당해 1,000만건의개인정보가유출되었고회사를상대로개인정보유출협박해금품을요구하는사고가있었다. 이때사용된해킹기술이 APT(Advanced Persistent Threat) 공격이다 [1]. 이 APT 공격은취약점을이용해악성코드를공격대상자몰래설치하고실행하게하는것을말한다. 이렇게소프트웨어취약점으로인해각종정보유출피해가과거부터지금까지끊임없이일어남에따라행정안전부에서는시큐어코딩가이드를제공하고이를의무화시키고있다 [2]. 이것은앞사례와같이실제해킹의 75% 가소프트웨어취약점을악용해이루어지고있기때문이다 [3]. 또한운영단계에서의취약점제거비용이개발단계보다 60~100 배의비용소요 (IBM보고서 ) 가되므로개발단계에적용되는시큐어코딩은비용절감효과도있다 [4]. 행정안전부의시큐어코딩가이드는국외의소프트웨어약점및취약성을분류하고정리하는단체인 CWE(Common Weakness Enumeration) 를참조해만들어졌다 [2][5]. CWE의보안취약성은프로그램언어및운영체제와같은환경등에따라약 1,000개이상으로구성되어있다. 그러나개발자가시큐어코딩을위해서는모든소프트웨어의취약점을알고이를대처가능하도록소프트웨어구현을해야한다. 일반적인개발자들은이런취약점항목에대한전문적인지식습득이어렵고취약점을어떻게수정해야하는지잘모르는경우가많다. 그러므로소스코드레벨에서취약점자동으로분석해주는도구가필요하다. 정보통신산업진흥원 (NIPA) 의소프트웨어가시화 (SW Visualization) 는소프트웨어의비가시성을극복하고개발과정의투명성을확보를통해품질확보및품질문제의조기검출해비용절감할수있는서비스이다 [6]. 우리는 NIPA의 SW Visualization 시즌 I, II, III과정을통해기존가시화방법을추상구문트리메타모델 (Abstract Syntax Tree Metamodel, ASTM)[7] 을활용한시스템으로확장하였고다양한가시화방법들 ( 응집도, 결합도, 재사용성, 성능, 저전력등 ) 을연구중이다 [8-10]. 본논문에서는기존의가시화방법을시큐어코딩에적용하기위해서추상구문트리메타모델을사용해코드보안취약점을찾아낼수있는방법을제안한다. 제안한방법은 xcodeparser[11] 를이용해추상구문트리메타모델을자동생성하고생성된구문트리에서보안코드규칙과탐색알고리즘을사용해보안위협이되는요소를식별하고이를가시화한다. 추상구문트리메타모델을사용하기때문에다양한프로그래밍언어에같은방법을적용가능하고기존도구에서발견하지못하는보안위협등을발견할수있다. 본논문의구성은다음과같다. 2장에서는관련연구를소개한다. 3장에서는보안취약성을자동으로발견할수있는가시화방법에대해설명한다. 4장에서는제안한방법을적용사례를보여주고, 5장에서는결론및향후연구에대해서언급한다. 22 Copyright c 2017 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017) 2. 관련연구 2.1 행정안전부의시큐어코딩가이드 시큐어코딩가이드는소프트웨어개발과정중코드작성시발생할수있는개발자실수, 논리적오류등으로인한보안취약점을최소화하기위한방법이다. 국내에서는 2009년부터전자정부서비스개발에서시큐어코딩관련연구를진행하였고, 2012년까지전자정부지원사업등을대상으로 SW 보안약점시범진단을수행하였다. 이러한 SW 보안약점제거 조치성과에따라 2012년에행정안전부 정보시스템구축 운영지침 이개정 고시됨으로써전자정부관련정보화사업수행시적용이의무화되었다 [2]. 이가이드는정보시스템구축시가장많이사용되는개발언어인 Java와 C언어의코딩가이드를제공하고있다. 코딩가이드는보안약점설명과보안대책이해를위한코딩예제 (Bad/Good) 를제시한다. [ 표 1] 과같이보안약점의유형은입력데이터검증및표현, 보안기능, 시간및상태, 에러처리, 코드오류, 캡슐화, API 오용으로 7가지로나누어진다. [ 표 1] 시큐어코딩가이드의보안약점의유형 [Table 1] The types of security weaknesses in secure coding guide 유형 입력데이터검증및표현 보안기능 시간및상태 에러처리 코드오류 캡슐화 API 오용 설명 프로그램입력값에대한검증누락또는부적절한검증, 데이터의잘못된형식지정으로인해발생할수있는보안약점 인증, 접근제어, 기밀성, 암호화, 권한관리등을적절하지않게구현하면발생할수있는보안약점 동시또는거의동시수행을지원하는병렬시스템환경에서시간및상태를부적절하게관리하여발생할수있는보안약점 에러를처리하지않거나, 불충분하게처리하여에러정보에중요정보가포함될때발생할수있는보안약점 변환오류, 자원의부적절한반환등과같이개발자가범할수있는코딩오류로인해유발되는보안약점 중요한데이터또는기능성을불충분하게캡슐화하였을때, 인가되지않는사용자에게데이터누출이가능해지는보안약점 의도된사용에반하는방법으로 API를사용하거나, 보안에취약한 API 를사용하여발생할수있는보안약점 시큐어코딩가이드를통해보안약점및대응기법등전반에대한이해가가능하다. 또한, 개발 자는소프트웨어개발시참조할수있고발주자는요구사항도출시보안약점을진단제거에참 조할수있다. Copyright c 2017 SERSC 23
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel 2.2 추상구문트리메타모델 OMG(Object Management Group) 표준인추상구문트리메타모델 (ASTM) 는컴파일러나파서에서사용되는추상구문트리 (AST) 의메타모델이다 [7]. 이 ASTM의목표는소프트웨어개발, 소프트웨어현대화를위한도구, 플랫폼, 이종분산환경의메타데이터저장소사이에서자세한소프트웨어구조를쉽게교환하기위한것이다. 특히, ASTM은다른판매회사의다양한도구를공유할수있는추상구문트리를대표하는모델링요소에대한규격이정의되어있다. 또한, ASTM은 C, C++, C#, Java, Ada, VB/.Net, COBOL, FORTRAN, Jovial 등과같이많은수의프로그래밍언어들을표현할수있다. 그러나 OMG의 ASTM은구현되어있지않고메타모델의규격만정의되어있다. 그리고그메타모델의구조는복잡하게만들어져있다. 우리는기존의 ASTM의메타모델을확장하여 [ 그림 1] 과같이정의하였다. 그확장한 ASTM은표준문서의 193개의메타모델구조들을구현하였고소프트웨어가시화를위해필요한 10개의구조물들을추가하였다 [11]. [ 그림 1] 확장된추상구문트리메타모델설계 [Fig. 1] A design of the extended Abstract Syntax Tree Metamodel (ASTM) xcodeparser 는코드분석기를거쳐프로그래밍언어의입력코드로부터 ASTM 파일을생성할수있다. XMI(XML Metadata Interchange)[12] 을기반으로하는생성된 ASTM 파일은 MDA(Model Driven Development) 기반의기존도구들과상호운영할수있다. 이 ASTM은클래스, 변수, 함수, 구문, 조건등프로그램언어의모든요소를트리로표현된다. 24 Copyright c 2017 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017) 3. 보안취약성가시화방법 3.1 보안소프트웨어가시화체계 소프트웨어가시화도구를개발하기위해서는기본적으로파서와가시화도구가필요하다. 본논문에서는기존가시화구조 [13] 에서보안위배코드의가시화를위한방법으로 [ 그림 2] 와같이보안코드분석기를추가하여확장한다. 이가시화방법은 xcodeparser, 분석기, 가시화의 3가지단계로구성되어있다. [ 그림 2] 보안위배코드의가시화방법 [Fig. 2] The method of security violation codes visualization xcodeparser 는 C, C++, Java와같은프로그래밍언어로부터 ASTM을생성한다. 분석기는생성된 ASTM을읽어코드의보안취약성을찾기위해서보안코드규칙을입력으로각각의보안위배사항을찾는다. 이결과는데이터베이스에저장되고가시화도구를통해서그래프로출력한다. 3.2 보안위험코드의추적및가시화 보안코드의추적및가시화를위해서는보안에문제가있는코드의유형을파악하고추상화하여야한다. [ 그림 3] 은안전하지않은코드의예를나타낸것으로입력데이터검증및표현파트의 SQL 삽입에관한예제이다. SQL 삽입은공격자가시스템의입력란에 SQL을삽입하여데이터베이스로부터정보를열람하거나조작하는보안약점이다. 안전한코딩을위해서는 preparedstatement 클래스와함께사용하기를권장한다. 하지만그림의코드에서는 preparedstatement 를사용하였지만문자열에다른변수값을허용하여보안에문제가생기는예이다. 이와같은경우단순히코드내에 preparedstatement 와같은 API 사용여부로찾을경우보안위배사항을검색하지못한다. Copyright c 2017 SERSC 25
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel 1: try 2: { 3: String tablename = props.getproperty("jdbc.tablename"); 4: String name = props.getproperty("jdbc.name"); 5: String query = "SELECT * FROM " + tablename + 6: " WHERE Name =" + name; 7: stmt = con.preparestatement(query); 8: rs = stmt.executequery(); 9: } 10: catch (SQLException sqle) { } 11: finally { } ( 가 ) ASTM 의구조 ( 나 ) 안전하지않은코드의예 (Java) [ 그림 3] SQL 삽입공격위험코드예 [Fig. 3] The example of risk code from SQL injection attack [ 그림 3] 의 5~6 라인의 ASTM 의구조는 [ 그림 4] 와같다. 변수 query 는 String 타입으로하위노 드로 Binary Expression 을갖는다. 이 Binary Expression 은오퍼레이터 Add 를중심으로 LHS 는문 자열 SELECT * FROM, RHS 는하위 Binary Expression 을갖는구조로반복된다. 그러므로이 경우의코딩규칙을찾기위해서는먼저 SQL 구문의문자열을찾아야하고상위에서정의된변수 가이 SQL 구문의문자열안에서변수명이사용될경우를찾아야한다. [ 그림 4] SQL 삽입관련코드의 ASTM [Fig. 4] The ASTM of code related to SQL injection 자원삽입은외부입력값을검증하지않고시스템자원을그대로사용하는경우를말한다. 이경우공격자는입력값조작을통해임의의접근, 수정, 충돌을유발할수있다. 이때사용되는자원은파일, 명령어파라미터값등이해당한다. [ 그림 5] 는자원삽입공격위험코드의예와이에대한코드를 ASTM을표현한것이다. 26 Copyright c 2017 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017) 1: Properties props = new Properties(); 2: FileInputStream in = new FileInputStream( file_list ); 3: props.load(in); 4: String service = props.getproperty("service No"); 5: int port = Integer.parseInt(service); 6: if (port!= 0) 7: serversocket = new ServerSocket(port + 3000); 8: else 9: serversocket = new ServerSocket(def + 3000); ( 가 ) ASTM 의구조 ( 나 ) 안전하지않은코드의예 (Java) [ 그림 5] 자원삽입공격위험코드예 [Fig. 5] The example of risk code from resource injection attack 이러한보안위협코드들의살펴본결과 [ 그림 6] 과같이프로그램의입력될수있는파라미터, 파일, 명령어, 사용자인터페이스를경유하여공격이시도된다. 그러므로입력값확인등과같은 보안코드를구현하지않았을시경우에따라서치명적인보안약점으로사용될수있다. 본논문 에서는코드상의보안문제점을추적하고가시적으로확인할수있도록코드문장의연결관계 를그래프로표현한다. [ 그림 6] 소프트웨어보안취약점의공격경로 [Fig. 6] The attack path of software vulnerability [ 그림 7] 은 [ 그림 3] 과 [ 그림 5] 의코드문장과의관계를가시적으로표현한것이다. 이가시화는코드의문장과의관계를노드와엣지로표현한다. 노드에는 [ 그림 8] 과같이코드의좌항에변수이름이있을경우그이름을표현해주고 -> 기호와함께코드의우항을표시한다. 변수이름이없을경우는코드의문장을그대로표현한다. 그리고제어문과반복문은노드로표현되지않고엣지에나타난다. Copyright c 2017 SERSC 27
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel ( 가 ) SQL 삽입예 ( 나 ) 리소스삽입예 [ 그림 7] 소프트웨어보안취약점의가시화결과 [Fig. 7] The visualization result of software vulnerability 엣지는노드와노드를연결해주는선으로실선과점선으로구분된다. 실선은코드의현재문장이다음문장에영향을미치는경우에영향을미치는변수이름과같이표현한다. 즉, 현재문장에서정의된변수가다음문장에서사용된경우를말한다. 실선은제어문에의해분기된경우를표현한다. String tablename = props.getproperty("jdbc.tablename"); tablename -> props.getproperty("jdbc.tablename") [ 그림 8] 코드문장을노드로변환 [Fig. 8] The transformation to a node from a statement of code 이코드가시화알고리즘은 [ 그림 9] 와같다. 먼저코드를입력으로 ASTM으로변환한다. ASTM 을순차적으로클래스내의모든메서드를탐색한다. 메서드내부에서 Declaration Or Definition Statement 를만나면변수의이름은좌항에초기값은우항에레이블로표시하고노드를만든다. Expression Statement 를만나면그중에서 Function Call Expression 은메서드이름이 Qualified Over Data일경우 ( 예 ) abc.method()), 레이블을표시하고노드를만든다. 그리고메서드의파라미터인 Actual Parameter Expression 의모든데이터를검색해서기존에만들어진노드가있는지검사해노드를만든다. 양변이있는 Binary Expression 중 Equal은좌변과우변의값을레이블에표시하고노드를만든다. 나머지 if, while, for 와같은모든 statement 는 expression 만조사에서기 28 Copyright c 2017 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017) 존노드와관계가있는표현한다. 모든구문을검사해노드가완성되면노드의이름을매치해그 래프의엣지를만들어낸다. 그래프가완성되면보안코드규칙을참조하여위배되는코드를적색 으로표시해준다. algorism GenerateGraph outastm run xcodeparser with filename fundefes visit FunctionDefinition with outastm call VisitStatement with fundefes for each fundef in fundefes do statements get BlockStatement in fundef for each statement in statements do call VisitStatement with statement algorism VisitStatement is input: statement if statement = DeclarationOrDefinitionStatement then exp get Initializer in statement label exp to string call VisitExpression with exp call MakeNode with lable label get name in statement call MakeNode with lable else if statement = ExpressionStatement then call VisitExpression with exp get Expression in statement else if statement = ForStatement then call VisitExpression with exp get Initializer in statement call VisitExpression with exp get Updater in statement call VisitExpression with exp get Expression in statement call VisitStatement with statement get BlockStatement in statement else if statement = IfStatement or WhileStatement then call VisitExpression with exp get Expression in statement call VisitStatement with statement get BlockStatement in statement algorism VisitExpression is input: exp if exp = FunctionCallExpression then label get Name in exp call MakeNode with label params get ActualParameterExpression in exp for each param in params do call VisitExpression with param else if exp = BinaryExpression then op get Operator in exp if op = Equal then call MakeNode with op get RightOperand in exp call MakeNode with op get LeftOperand in exp [ 그림 9] 가시화를위한그래프생성알고리즘 [Fig. 9] The algorism of graph generation for visualization Copyright c 2017 SERSC 29
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel 4. 적용사례 본논문에서는적용사례로 [ 그림 10] 과같이 HS솔라에너지의태양광모니터링시스템 (PVMS) [14] 에대해서제안한방법으로보안성체크를수행해본다. 태양광모니터링시스템은태양광셀로부터수집된전력의양과온도, 기울기센서들의정보를모니터링하고관리하기위한시스템이다. PVMS는접속함과인버터에서생산된데이터를 RS232통신으로태양광발전이설치된지역에서관리하는모니터링시스템인로콜서버에전달한다. 이렇게지역에있는로콜서버들은 TCP/IP 를통해서통합모니터링서버로전달되고모든데이터는통합되고데이터베이스에저장한다. ( 가 ) 로콜모니터링 ( 나 ) 통합모니터링 [ 그림 10] 태양광모니터링시스템의구조 [Fig. 10] The structure of Photovoltaic Monitoring System [ 그림 11] 태양광모니터링시스템의보안취약점가시화결과 [Fig. 11] The visualization result of software vulnerability in Photovoltaic Monitoring System 30 Copyright c 2017 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.14, No.1 (2017) 태양광모니터링시스템은데이터를수집하기위해서 TCP/IP 네트워크를사용하기때문에보안에취약할수있다. 그러므로보안에위배되는코드들이있는지검사하기위해서각클라이언트로부터수집받은데이터를데이터베이스에저장하는부분의코드에대해서가시화를수행해보았다. 그결과 [ 그림 11] 과같이 SQL 구문사용한부분중 strtime 이라는시간을가져오는코드에서 SQL 삽입위협이있는코드를발견하였다. 5. 결론 소프트웨어의규모가커지면커질수록보안의위협은계속되고있고한번사고가나면천문학적인피해를보게된다. IBM보고서와같이운영단계에서의취약점제거비용이개발단계보다 60~100 배의비용소요되므로보안은개발완료후수정하는것보다개발단계에서예방하는것이효율적이다. 본논문에서는행정안전부의시큐어코딩가이드를활용하여개발자가쉽게발견할수있도록가시화방법을제안하였다. 제안한방법은개발자가시큐어코딩에대한전문적인지식습이없더라도활용할수있도록소스코드레벨에서취약점자동으로분석해주는도구를개발하였다. 이방법은 xcodeparser 를이용해추상구문트리메타모델을자동생성하고생성된구문트리에서보안코드규칙과탐색알고리즘을사용해보안위협이되는요소를식별하고이를가시화한다. 추상구문트리메타모델을사용하기때문에다양한프로그래밍언어에같은방법을적용가능하고기존도구에서발견하지못하는보안위협등을발견할수있다. 하지만현재는하나의메서드내에서만보안위협경로를찾을수있다. 향후연구로이를확장하여메서드와메서드, 모듈과모듈간까지추적하여광범위한부분에대해서보안위험을확인할수있도록연구중이다. 또한더많은시큐어코딩규칙을적용중이다. Copyright c 2017 SERSC 31
A Visualization of Secure Vulnerability in Code using Abstract Syntax Tree Metamodel References [1] G. Thomson, APTs: a poorly understood challenge. Network Security. (2011), Vol.2011, No.11, pp. 9-11. [2] Ministry of Public Administration and Security (MOPAS), Java Secure Coding Guide for developer and operator of e-government software, MOPAS and Korea Internet & Security Agency (2012). [3] C. H. Paik, J. M. Sun, K. D. Ryu, B. J. Moon, T. W. Kim and W. J. Kim, Android-based mobile messenger application vulnerability analysis and secure coding method. The Korean Society Of Computer And Information. (2014), Vol.22, No.1, pp.83-87. [4] https://www.isixsigma.com/industries/software-it/defect-prevention-reducing-costs-and-enhancing-quality/, March 1 (2009). [5] S. C. Coley, J. E. Kenderdine, L. Piper and R. A. Martin, Common Weakness Enumeration (CWE) : A Community-Developed Dictionary of Software Weakness Types, Version 2.9, MITRE (2015). [6] S. E. Lee, S. H. Baek, S. J. Kang, W. M. Song, S. E. Lee, W. S. Jang, D. G. Jung and J. M. Cho, SW Visualization : Software Development Quality Management Manual, NIPA (2013). [7] http://www.omg.org/spec/astm/1.0/, January 1 (2011). [8] C. Y. Seo, S. Y. Moon, H. S. Son, G. S. Yi, Y. S. Kim and R. Y. C. Kim, Open Source of Integration Service Tools for Venture & Small Business Maintenance Solutions. Korea Information Processing Society Review. (2016), Vol.23, No.6, pp. 22-32. [9] G. H. Kang, R. Y. C. Kim, G. S. Yi, Y. S. Kim, Y. B. Park and H. S. Son, A Practical Study on Code Static Analysis through Open Source based Tool Chains. KIISE Transactions on Computing Practices. (2015), Vol.21, No.2, pp. 148-153. [10] B. K. Park, H. E. Kwon, H. S. Son, Y. S. Kim, S. E. Lee, R. Y. C. Kim, A Case Study on Improving SW Quality through Software Visualization, Journal of KIISE, Vol.41, No.11 935-942 (2014). [11] H. S. Son, Y. S. Kim, Y. B. Park, W. Y. Kim and R. Y. C. Kim, Abstract Syntax Tree Metamodel for SW Visualization. Proceedings of the 4th International Conference on Convergence Technology, (2014), July 2-5; Manila, Philippines. [12] http://www.omg.org/spec/xmi/2.1.1/, December 1 (2007). [13] H. S. Son, S. Y. Moon, R. Y. C. Kim and S. E. Lee, Replacing Source navigator with Abstract Syntax Tree Metamodel(ASTM) on the open source oriented tool chains SW Visualization. Proceedings of the 5th International Conference on Convergence Technology, (2015) June 29-July 2; Hokkaido, Japan. [14] H. S. Son and R. Y. C. Kim, Modeling a Photovoltaic Monitoring System based on Maintenance Perspective for New & Renewable Energy. Proceedings of the 2nd International Joint Conference on Convergence, (2016) January 18-22; Hanoi, Vietnam. 32 Copyright c 2017 SERSC