KR101947760B1 - 스마트콘트랙트의 보안 인증 서버 - Google Patents

스마트콘트랙트의 보안 인증 서버 Download PDF

Info

Publication number
KR101947760B1
KR101947760B1 KR1020180105594A KR20180105594A KR101947760B1 KR 101947760 B1 KR101947760 B1 KR 101947760B1 KR 1020180105594 A KR1020180105594 A KR 1020180105594A KR 20180105594 A KR20180105594 A KR 20180105594A KR 101947760 B1 KR101947760 B1 KR 101947760B1
Authority
KR
South Korea
Prior art keywords
vulnerability
certificate
source code
smart contract
unit
Prior art date
Application number
KR1020180105594A
Other languages
English (en)
Inventor
김종현
Original Assignee
김종현
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김종현 filed Critical 김종현
Priority to KR1020180105594A priority Critical patent/KR101947760B1/ko
Application granted granted Critical
Publication of KR101947760B1 publication Critical patent/KR101947760B1/ko
Priority to US16/468,279 priority patent/US11170097B1/en
Priority to PCT/KR2019/006017 priority patent/WO2020050474A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

스마트콘트랙트 소스코드에 대한 보안 인증을 수행하는 서버는 보안 인증을 요청하는 서버로부터 스마트콘트랙트 소스코드를 수신하는 통신부; 및 상기 수신된 스마트콘트랙트 소스코드를 기반으로 보안 취약점을 검증하는 제어부;를 포함하여 구성되되, 상기 제어부는 스마트콘트랙트의 소스코드를 열람하여 소스코드의 취약점을 점검하는 소스코드 취약점 점검부, 상기 소스코드의 실행을 위한 통신 구간을 점검하는 통신구간 점검부, 상기 소스코드가 실행되는 브라우저상에서의 앱 및 웹 취약점을 점검하는 실행 취약점 점검부 및 상기 소스코드 취약점 점검부, 통신구간 점검부 및 실행 취약점 점검부에 의한 점검 결과 보안 수준이 요구 조건을 만족하는 것으로 판단되는 경우 인증서를 발급하여 상기 스마트콘트랙트의 소스코드가 저장되는 블록체인 블록에 상기 소스코드와 함께 저장되도록 제어하는 인증서 발급부를 포함할 수 있다.

Description

스마트콘트랙트의 보안 인증 서버{Secure authentication server for smart contract}
본 발명은 스마트콘트랙트의 보안 인증 서버에 관한 것이다. 보다 상세하게는, 본 발명은 스마트콘트랙트를 수행하는 앱 및 웹에 대하여 해킹 등의 위협에 대한 취약점이 존재하는지 여부를 판단하고, 취약점이 존재하지 않는 스마트콘트랙트 소스코드에 대하여 인증서를 발급하는 방식으로 보안 인증을 수행하는 서버에 관한 것이다.
스마트콘트랙트(Smart contract; 스마트 계약)은 분산 원장 기술에서 거래의 일정 조건을 만족시키면 당사자 간에 자동으로 거래가 체결되는 방식의 기술을 의미한다. 이러한 스마트 계약 시스템 하에서는 거래 조건과 내용을 등록하면 그에 해당하는 법률 및 절차 등이 자동으로 적용되어 거래 당사자에게 결과가 전달되게 된다. 이러한 스마트 콘트랙트는 거래 절차가 간소화되고 거래상 발생되는 비용도 절감되는 이점을 가지고 있다.
한편, 이러한 스마트콘트랙트는 프로그래밍 언어로 작성된 '소스코드'상의 오류로 인해 버그가 발생할 수 있다. 최근 이더리움 스마트 콘트랙트의 버그 여부를 조사한 한 논문에 따르면 스마트콘트랙트에 세 가지 유형의 버그(자금이 잠기는 버그, 자금이 유출되는 버그, 계약을 삭제할 수 있도록 하는 버그)가 존재할 수 있다. 실제로 약 백만건의 스마트콘트랙트 중에서 34,200건이 잠재적으로 보안상 취약하고, 2365건에 명확히 버그가 있는 것으로 밝혀진 바 있다. 실제로 이러디움 지갑인 패리티가 버그로 인해 잠기는 사건이 발생한 적이 있으며, 이로 인해 약 1억 5천만 달러에 달하는 자금이 잠기게 되었다. 이와 같이 스마트콘트랙트 상에서의 보안 문제는 심각한 자금손실을 초래할 수 있으며, 이를 위한 대비책이 요구되나 현재 스마트콘트랙트에 대한 보안 검증을 위한 노력은 부족한 실정이다.
본 발명은 상기 기술된 문제를 해결하기 위해 고안된 것으로, 스마트콘트랙트의 보안 취약점을 분석하고, 특정 보안 기준을 세우고 그에 대한 검증을 진행하기 위한 목적이 있다.
또한 본 발명은 보안 안정성이 기준을 통과한 스마트콘트랙트에 대하여 인증서를 발급함을 통해 신뢰성있는 스마트콘트랙트 환경을 구축하려는 목적이 있다.
스마트콘트랙트 소스코드에 대한 보안 인증을 수행하는 서버는 보안 인증을 요청하는 서버로부터 스마트콘트랙트 소스코드를 수신하는 통신부; 및 상기 수신된 스마트콘트랙트 소스코드를 기반으로 보안 취약점을 검증하는 제어부;를 포함하여 구성되되, 상기 제어부는 스마트콘트랙트의 소스코드를 열람하여 소스코드의 취약점을 점검하는 소스코드 취약점 점검부, 상기 소스코드의 실행을 위한 통신 구간을 점검하는 통신구간 점검부, 상기 소스코드가 실행되는 브라우저상에서의 앱 및 웹 취약점을 점검하는 실행 취약점 점검부 및 상기 소스코드 취약점 점검부, 통신구간 점검부 및 실행 취약점 점검부에 의한 점검 결과 보안 수준이 요구 조건을 만족하는 것으로 판단되는 경우 인증서를 발급하여 상기 스마트콘트랙트의 소스코드가 저장되는 블록체인 블록에 상기 소스코드와 함께 저장되도록 제어하는 인증서 발급부를 포함할 수 있다.
본 발명의 다양한 실시 예는 블록체인을 통해 수행되는 스마트콘트랙트(Smart Contract)의 보안 취약점을 평가하고 보안 취약점이 발견되지 않은 스마트콘트랙트에 한하여 인증서를 발급하므로 스마트콘트랙트 소스코드의 설계 시 보다 엄격한 보안 기준으로 계약 프로그램을 제작하도록 유도하는 효과가 있다.
또한 본 발명의 다양한 실시 예는 인증서가 유효한 경우에만 스마트콘트랙트를 수행할 수 있도록 허가하므로 보다 해킹 등의 위협요소로부터 안전한 스마트 거래 환경을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 스마트콘트랙트 보안 인증 서버의 구조를 도시한 블록도이다.
도 2a 및 도 2b는 본 발명의 실시 예에 따른 스마트콘트랙트 보안 인증 서버에 의한 인증 동작의 예시를 도시한 도면이다.
도 3은 본 발명의 실시 예에 따른 스마트콘트랙트의 보안 인증서 발급 과정에 대하여 도시한 순서도이다.
도 4는 본 발명의 실시 예에 따른 인증서 확인 동작의 순서를 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어'있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 '직접 연결되어'있다거나 '직접 접속되어'있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함하다' 또는 '가지다' 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 도 1 내지 도 2b를 참조하여 본 발명의 실시 예에 따른 스마트콘트랙트의 보안 인증 동작에 관하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 스마트콘트랙트 보안 인증 서버의 구조를 도시한 블록도이다.
도 2a 및 도 2b는 본 발명의 실시 예에 따른 스마트콘트랙트 보안 인증 서버에 의한 인증 동작의 예시를 도시한 도면이다.
본 발명의 실시 예에 따른 상기 보안 인증 서버 100는 통신부 110, 저장부 120, 제어부 130를 포함하여 구성될 수 있다. 상기 제어부 130는 소스코드 취약점 점검부 131, 통신구간 점검부 132, 실행 취약점 점검부 133, 인증서 발급부 134를 포함하여 구성될 수 있다.
상기 통신부 110는 사용자 디바이스와 서버 간의 데이터 송수신을 위해 네트워크를 이용할 수 있으며 상기 네트워크의 종류는 특별히 제한되지 않는다. 상기 네트워크는 예를 들어, 인터넷 프로토콜(IP)을 통하여 대용량 데이터의 송수신 서비스를 제공하는 아이피(IP: Internet Protocol)망 또는 서로 다른 IP 망을 통합한 올 아이피(All IP) 망 일 수 있다. 또한, 상기 네트워크는 유선망, Wibro(Wireless Broadband)망, WCDMA를 포함하는 이동통신망, HSDPA(High Speed Downlink Packet Access)망 및 LTE(Long Term Evolution) 망을 포함하는 이동통신망, LTE advanced(LTE-A), 5G(Five Generation)를 포함하는 이동통신망, 위성 통신망 및 와이파이(Wi-Fi)망 중 하나 이거나 또는 이들 중 적어도 하나 이상을 결합하여 이루어질 수 있다.
본 발명의 실시 예에 따른 상기 통신부 110는 보안 인증을 요청하는 서버로부터 스마트콘트랙트 소스코드를 수신할 수 있다. 또한 상기 통신부 110는 스마트콘트랙트 소스코드가 저장되는 블록체인 상에 해당 소스코드 상의 보안 검증이 완료되었다는 의미의 인증서를 저장하기 위한 데이터 전송 동작을 수행할 수 있다. 이 때 상기 블록체인은 스마트콘트랙트를 지원하는 형태의 블록체인(예, 이더리움)을 의미할 수 있다. 그리고 다양한 실시 예에 따라 상기 블록체인은 이더리움과 같은 퍼블릭 블록체인뿐 아니라 정부기관, 기업체에서 관리하는 프라이빗 블록체인을 포함할 수 있다.
또한 상기 통신부 110는 다양한 실시 예에 따라 보안 인증 대상 업체 및 의뢰자에 대한 정보를 수집할 수 있다. 이를 기반으로 상기 서버 100는 스마트콘트랙트 소스코드가 구현된 웹 및 앱의 취약점을 분석할 시, 수집된 정보를 참조하여 분석을 수행할 수 있다. 예컨대, 상기 서버 100는 분야별 주요 해킹 방식에 대한 정보를 수집하고, 보안 점검 대상인 스마트콘트랙트의 제공 업체 분류에 대한 정보를 수집하여, 상기 점검 대상 스마트콘트랙트의 제공 업체 분류에서 주로 사용되는 해킹 수법을 산출하고 이를 바탕으로 모의해킹 요청 리스트를 작성할 수 있다. 상기 서버 100의 운영자는 보안 점검 과정 중 일부에 직접 참여하여 수동으로 모의해킹을 수행할 수 있는데, 이 때 운영자는 상기 모의해킹 요청 리스트에 기반하여 모의해킹을 수행할 수 있다. 그리고 상기 서버 100는 모의해킹 요청 리스트 상의 해킹 기법을 통과한 경우에 한하여 인증서 발급이 가능하도록 제어할 수 있다.
상기 통신부 110는 스마트콘트랙트 소스코드 뿐 아니라, 블록체인의 블록 바디 상에 기 저장된 인증서를 수신할 수 있다. 이에 따라 상기 서버 100는 수신된 인증서의 코드 정보 및 해시값을 기반으로 해당 인증서의 유효성을 판단할 수 있으며, 인증서가 유효하다고 판단되는 경우에 한하여 스마트콘트랙트 동작을 수행하도록 승인할 수 있다.
상기 저장부 120는 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장메모리는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나를 포함할 수 있다.
외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치와 기능적으로 및/또는 물리적으로 연결될 수 있다.
본 발명의 실시 예에 따른 상기 저장부 120는 소스코드 자체 내 취약점 및 통신구간 상의 취약점을 검출하기 위한 자동화 툴에 대한 정보를 저장할 수 있다. 또한 상기 저장부 120는 인증서를 발급하기 위한 최소 기준에 대한 정보를 저장할 수 있다. 예컨대, 상기 저장부 120는 취약점 항목별 점수 산정 방식에 대한 정보를 더 포함할 수 있다. 그리고 서버 100는 취약점 발견 점수가 기 설정된 상기 최소 기준치 이상인 경우 인증서 발급 동작을 중단할 수 있다.
다양한 실시 예에 따라 상기 저장부 120는 스마트콘트랙트의 취약점 분석을 요청하는 업체별 분류 기준을 저장할 수 있다. 또한 상기 저장부 120는 업체 분류별 주요 공격 기법, 기 발생된 해킹 이력 및 해킹 기법에 대한 정보를 저장할 수 있다. 또한 상기 저장부 120는 인증서 발급 시 인증서에 포함할 해시값을 산출하기 위한 해시 함수를 저장할 수 있다. 이 때 상기 해시 함수는 예컨대, MD4 함수, SHA-0 함수, SHA-1 함수, SHA-256 함수, SHA-384함수, SHA-512함수 등을 포함할 수 있으며, 언급된 종류에 한정되지 않는다.
또한 상기 저장부 120는 점검 대상이 되는 취약점 리스트를 저장할 수 있다. 상기 취약점 리스트는 다음의 표와 같다.
취약점 명 위험도 설명
Weak Credentials 유추 가능한 패스워드 사용으로 인해 발생하는 취약점
Use Equals To Compare Strings 문자열(string)비교를 위해 == 또는 != 등의 비교연산자를 사용하는 경우 발생하는 취약점
Method Argument Could Be Final 전달인자가 전달된 후 재할당이 존재하지 않아 발생하는 취약점(인자 전달 후 해당 인자를 재할당하거나 Final 선언 필요)
Use of non-cryptographic PRNG 암호화가 적용되지 않은 난수 생성기 사용시 발생하는 취약점
Duplicate If 중복되는 표현식이 존재하여 발생하는 취약점
Weak Random 안전하지 않은 난수 생성기를 사용하여 발생하는 취약점
Constant Memory Allocation 메모리 할당 함수가 데이터 유형의 크기 결과(sizeof 연산자)를 반환하지 않아 발생하는 취약점(버퍼 오버 플로우 취약점 발생 가능)
Unused Function 선언된 함수가 사용되지 않아 발생하는 취약점
Possible Off By One Error in For Loop 배열에 대한 크기 지정이 없어 무한루프 발생 가능성이 존재하는 취약점
Null Pointer Null값에 대해 체크하는 부분이 존재하지 않아 발생하는 취약점
Memleak 메모리 누수로 인해 발생하는 취약점
Resource Leak 리소스 누수로 인해 발생하는 취약점
Denial of Service BufferedReader.readLine()함수 사용으로 인해 DoS 공격이 가능한 취약점
Unused Allocated Memory 사용되지 않는 메모리가 할당되어 발생하는 취약점
Unread Variable 사용되지 않는 값을 변수에 할당하여 발생하는 취약점
취약점 명
위험도
설명
Weak Credentials

유추 가능한 패스워드 사용으로 인해 발생하는 취약점
Use Equals To Compare Strings

문자열(String)비교를 위해 == 또는 != 등의 비교연산자를 사용하는 경우 발생하는 취약점
Method Argument Could Be Final

전다인자가 전달된 후 재할당이 존재하지 않아 발생하는 취약점(인자 전달 후 해당 인자를 재할당하거나 final 선언 필요)
Use of non-cryptographic PRNG

암호화가 적용되지 않은 난수 생성기 사용시 발생하는 취약점
Duplicate If

중복되는 표현식이 존재하여 발생하는 취약점
Weak Random

안전하지 않은 난수 생성기를 사용하여 발생하는 취약점
Constant Memory Allocation

메모리 할당 함수가 데이터 유형의 크기 결과(sizeof 연산자)를 반환하지 않아 발생하는 취약점(버퍼 오버 플로우 취약점 발생 가능)
Unused Function

선언된 함수가 사용되지 않아 발생하는 취약점
External Links

소스코드 내 URL이 포함되어 있어 발생하는 취약점(부적절한 링크 검토해야함)
Cross Site Scripting

웹 페이지가 사용자에게 입력 받은 데이터를 필터링하지 않고 동적으로 생성된 웹 페이지에 포함되어 사용자에게 재전송 가능한 취약점
SQL injection

입력 폼 및 URL 입력란에 SQL 구문을 삽입하여 DB로부터 정보를 열람하거나 조작 가능한 취약점
Debug Parameter

소스코드 내 디버그 관련 파라미터가 존재하여 발생하는 취약점
Cryptography

소스코드 내 하드코딩된 암호화키가 존재하여 발생하는 취약점
No Html Comments

HTML 주석 내에 불필요한 URL 이 존재하여 발생하는 취약점
Jsp Encoding

인코딩 타입이 존재하지 않아 발생하는 취약점
Potentially Sensitive Data Visible

임시 파일이 존재하여 발생하는 취약점
Process Control

소스코드 내 외부 프로그램(리눅스, cmd 등)실행 명령어가 존재하여 발생하는 취약점
Poor Logging Practice

System.out.print(In) or System.err.print(In)등의 함수를 사용하여 로그를 출력할 때 발생하는 취약점(어플리케이션을 통해 logging 기능 사용해야 함)
버퍼 오버플로우

메모리나 버퍼의 블록크기보다 더 많은 데이터를 넣음으로써 결함을 발생시키는 취약점
포맷스트링

스트링을 처리하는 부분에서 메모리 공간에 접근할 수 있는 문제를 이용하는 취약점
인젝션

SQL문으로 해석될 수 있는 입력을 시도하여 데이터베이스에 접근할 수 있는 취약점
운영체제명령실행

사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 운영체제 시스템 명령어를 호출하여 백도어 설치나 관리자 권한 탈취 등이 발생할 수 있는 취약점
디렉토리인덱싱

디렉토리 인덱싱 기능의 활성화로 해당 디렉토리 요청 시 디렉토리에 인덱스 파일이 존재하지 않을 경우, 디렉토리 내 모든 파일 목록이 보여지게 되어 웹 서버 구조 및 백업 파일이나 소스 파일 등 중요 파일이 노출될 수 있는 취약점
과도한 에러 페이지 노출

에러 발생 시 에러 처리(별도의 에러 페이지로 리다이렉트)가 설정되어 있지 않아 공격자의 에러 유발을 통해 중요 정보가 노출되는 취약점
중요정보 평문 노출

웹 어플리케이션의 소스 내에 계정정보(아이디, 패스워드) 및 개인정보(주민등록번호, 카드번호 등) 등이 중요 정보가 평문으로 노출되는 취약점
잘못된 보안 구성

웹 서버 등의 적절한 보안 구성이 되지 않아 공격자의 접근이 가능한 취약점
중요 정보 평문 전송

로그인 인증 정보 등의 중요한 정보를 통신 시 암호화된 방식을 사용하지 않고 평문 전송하고 있는 경우 도청을 통해 정보의 탈취 및 도용할 수 있는 취약점
악성 콘텐츠

웹 어플리케이션에 정상적인 콘텐츠 대신에 악성 콘텐츠를 주입하여 사용자에게 악의적인 영향을 미치는 취약점
크로스사이트스크립팅(XSS)

웹 어플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼에 악의적인 스크립트를 삽입하여 사용자에게 세션 도용, 악성코드를 유포할 수 있는 취약점.
패스워드 복잡도

취약한 패스워드로 회원가입이 가능할 경우 공격자가 추측을 통한 대입 및 주변 정보를 수집하여 작성한 사전 파일 통한 대입을 시도하여 사용자의 패스워드를 추출할 수 있는 취약점
인자변조

모든 실행 경로에 대해서 접근 제어를 검사하지 않거나 미흡한 경우 공격자가 접근 가능한 실행 경로를 통해 사용자의 정보를 유출하거나 일시적인 권한 상승이 가능한 취약점
클라이언트 기반의 인증처리

인증 처리가 클라이언트 기반으로 되어 있는 경우 javascript, VBscript, JavaApplet 등 코드 수정을 통해 인증을 우회할 수 있는 취약점
불충분한 이용자 인증

개인정보 수정 페이지나 통합 로그인(SSO)과 같은 곳에서 사용자 인증이 미흡(아이디로 인증)할 경우 공격자가 파라미터로 전달되는 값을 수정하여 사용자 도용 및 개인정보 노출 문제가 발생할 수 있는 취약점
취약한 패스워드 복구

웹 어플리케이션에 존재하는 비밀번호 찾기 기능 또는 관리자에 의한 임시 비밀번호 발급 시 사용자 인증이 미흡하거나 비밀번호를 화면에 즉시 출력할 경우 공격자가 다른 사용자의 비밀번호를 획득, 변경, 복구 할 수 있는 취약점
세션 예측

단순히 숫자가 증가하는 방법 등의 취약한 특정 세션의 식별자(ID)를 예측하여 세션을 가로챌 수 있는 취약점
불충분한 접근 제어

민감한 데이터 또는 기능에 대한 접근권한 제한을 두지 않은 취약점
불충분한 세션 만료

인증 시 마다 동일한 세션 ID가 발급되거나 세션 타임아웃을 너무 길게 설정하여 공격자가 세션을 재사용할 수 있는 취약점
세션 고정

이용자 인증 정보를 다른 단말기에서 재사용하거나 재전송 가능한 취약점
자동화 공격

특정 프로세스에 대한 접근시도 횟수 제한을 설정하지 않을 경우 공격자가 자동화 툴 및 봇을 활용하여 특정 프로세스를 반복 수행함으로써 자동으로 수많은 프로세스가 진행되어 시스템 성능에 영향을 미칠 수 있는 취약점
프로세스 검증 누락

파일 업로드 기능을 이용하여 웹 서버 직접 접근 및 시스템 명령어 실행이 가능한 웹 프로그램을 업로드할 수 있는 취약점
파일업로드

파일업로드기능을 이용하여 웹 서버 직접 접근 및 시스템 명령어 실행이 가능한 웹 프로그램을 업로드 할 수 있는 취약점
파일다운로드

파일 다운로드 경로를 조작하여 첨부된 주요 파일을 다운로드 할 수 있는 취약점
관리자페이지 노출

관리자페이지가 추측 가능한 형태로 구성되어 있을 경우 공격자가 관리자페이지에 쉽게 접근을 할 수 있으며 무차별 대입 공격을 통하여 관리자 권한을 획득할 수 있는 취약점
쿠키값 변조를 통한 권한 상승

사용자 인증 방식 중 하나인 쿠키를 공격자가 변조하여 다른 사용자로 전환하거나 권한 상승이 가능한 취약점
불필요한 파일 노출 여부

예측 가능한 디렉토리나 파일명을 사용하여 해당 위치가 쉽게 노출되어 공격자가 이를 악용하여 대상에 대한 정보와 민감한 정보가 담긴 데이터에 접근이 가능한 취약점
유추가능한 비밀번호 이용

웹 서비스 설치 후 디폴트 계정 및 패스워드를 이용할 경우 공격자가 해당 권한을 도용하여 웹 서비스르 ㄹ이용할 수 있는 취약점
외부사이트에 의한 시스템 운영정보 노출 여부

웹 서비스의 중요 정보 및 페이지가 검색 엔진을 통해 수집되어 외부 비인가자에게 노출되는 취약점
리다이렉트 기능을 이용한 피싱 공격

리다이렉트 기능 존재 시 URL 인자 값에 대한 검증 누락으로 인해 임의 페이지로 이동 가능한 취약점
불필요한 웹 메서드 허용

웹 어플리케이션에서 일반적으로 사용하는 GET, POST 메서드 이외의 불필요한 메서드를 허용하였을 경우 공격자가 이를 이용하여 웹 서버에 파일을 생성하거나 삭제 및 수정이
가능한 취약점
상기 표 1은 스마트콘트랙트 소스코드 상에서 점검될 수 있는 취약점 항목이며, 상기 표 2는 웹/앱 상에서 점검될 수 있는 취약점 항목이다. 즉, 표 1은 후술되는 소스코드 취약점 점검부 131에 의해 점검되는 취약점 리스트를 포함할 수 있고, 표 2는 통신구간 점검부 및 실행 취약점 점검부 133에 의해 점검되는 취약점 리스트를 포함할 수 있다.
상기 제어부 130는 프로세서(Processor), 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 호칭될 수 있다. 한편, 제어부는 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 제어부에 의해 구동될 수 있다. 메모리는 상기 사용자 단말 및 서버 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 상기 제어부와 데이터를 주고 받을 수 있다.
본 발명의 실시 예에 따른 상기 제어부 130는 소스코드 취약점 점검부 131, 통신구간 점검부 132, 실행 취약점 점검부 133, 인증서 발급부 134를 포함하여 구성될 수 있다.
상기 소스코드 취약점 점검부 131의 동작은 도 2a를 통해 설명하기로 한다. 도 2a에서는, 블록체인 240 상에 트랙잭션 형태로 저장되는 스마트콘트랙트(Smart Contract)의 소스코드에 대하여 소스코드 취약점 점검부 131에 의한 소스코드 취약점 점검이 수행되는 동작 210에 대하여 도시되고 있다.
도 2a에서 도시되는 바와 같이 Development 220 단계에서는 Solidity로 작성된 콘트랙트 코드를 Solc로 컴파일하는 동작에 의해 바이트 코드로 변환할 수 있다. 상기 바이트코드로 변환된 스마트콘트랙트 정보는 블록체인의 블록 바디상에 저장될 수 있다. 상기 소스코드 취약점 점검부 131는 이와 같이 스마트 콘트랙트 내용이 바이트 코드로 변환되기 전 Solidity 형태로 존재하는 소스코드를 대상으로 취약점 점검을 수행할 수 있다. 참고로, 상기 Solidity는 스마트 계약 프로그래밍을 위한 자바 기반의 언어이며, 본 발명의 다양한 실시 예에 따라 분석 대상이 되는 소스코드는 자바 형태의 Solidity 외의 다른 형태의 프로그래밍 언어로 구현될 수 있다.
다양한 실시 예에 따라, 상기 소스코드 취약점 점검부 131는 소스코드 취약점 점검 210을 수행함에 있어서, 취약점이 발견되면 발견되는 취약점 정보를 기록하고 이를 점검 대상 소스코드를 제공한 업체측에 전달하여 피드백하는 동작을 수행할 수 있다. 또한 상기 소스코드 취약점 점검부 131는 열람된 소스코드가 이전 취약점 검사를 수행한 소스코드와 기 설정된 퍼센트 이상 유사한 경우 동일 소스코드의 수정 버전임을 판단할 수 있다. 상기 소스코드 취약점 점검부 131는 그 외 다양한 방식에 의해 이전 취약점 점검이 수행된 소스코드인지 여부를 판단할 수 있고, 이전 소스코드 점검 당시 취약점이 발견된 소스코드인 것으로 판단되는 경우, 후속 단계(통신 구간 점검 단계 및 웹/앱 취약점 점검 단계)에서 수행되는 취약점 판단 기준을 변경하도록 제어할 수 있다. 예컨대, 상기 소스코드 취약점 점검부 131는 취약점이 감지되어 수정된 이력이 존재하는 스마트콘트랙트에 대하여 요구되는 모의 해킹 통과 기준치를 증가 설정 또는 통과해야하는 모의 해킹의 기법 종류를 증가 설정할 수 있다.
상기 소스코드 취약점 점검부 131가 소스코드의 취약점을 점검한 이후, 통신구간 점검부 132와 실행 취약점 점검부 133가 점검 동작을 수행할 수 있다. 이에 대하여 도 2b를 참조하여 설명하기로 한다.
도 2b에서 도시되는 바와 같이 블록체인 240상에 기록된 바이트 코드 형태의 스마트콘트랙트 내용은 예컨대 이더리움 클라이언트 230와 같은 분산 네트워크상에서 구현될 수 있다. 상기 바이트 코드 형태의 스마트콘트랙트가 구현되는 분산 네트워크 상의 플랫폼은 예컨대 EVM(Ethereum Virtual Machine)일 수 있으며, 상기 EVM은 이더리움 및 이더리움의 표준 코드 ERC 20(Ethereum Request for Commnet 20)을 준수하는 다른 가상화폐(예, 퀀텀)나 DApp에서도 사용할 수 있다.
상기 바이트 코드 형태의 스마트콘트랙트는 EVM상에서 실행될 수 있으며, 이는 곧 브라우저 260를 통해 사용자측에 해당 내용을 제공할 수 있게 된다. 상기 통신구간 점검부 132 및 실행 취약점 점검부 133는 브라우저 260상에서 상기 스마트콘트랙트의 구현 동작이 제공되는 단계에서 취약점을 점검할 수 있다.
브라우저 260 내에 도시된 'web3.js'는 JSON RPC(Remote Precedure Call, 원격 프로시저 호출)스펙을 구현한 이더리움 자바 스크립트 API를 의미할 수 있다. 즉, 스마트콘트랙트를 구현하는 EVM이 백엔드 개념이라면 web3.js는 스마트콘트랙트를 구현하기 위한 프론트엔드 개념이며, 상기 통신구간 점검부 130와 실행 취약점 점검부 133는 프론트 엔드 역할을 수행하는 web3.js를 통해 구현되는 스마트콘트랙트 앱(또는 웹)을 대상으로 취약점을 점검할 수 있다.
도 2b의 250을 참조하면, 소스코드 통신 구간 점검 동작은 통신구간 점검부 132에 의해 수행될 수 있으며, 통신 구간에서의 취약점을 평가하는 역할을 수행할 수 있다. 그리고 웹/앱 취약점 점검 동작은 실행 취약점 점검부 133에 의해 수행될 수 있으며, 서버 100 운영자의 수동 점검 동작을 포함할 수 있다. 상기 실행 취약점 점검부 133는 다양한 실시 예에 따라, 소스 코드 취약점 점검부 131에서 이전 오류 수정 이력 또는 취약점 발견 이력이 존재하는지 여부를 판단한 결과에 따라 새롭게 설정된 점검 기준치를 따를 수 있다. 예컨대, 소스코드 취약점 점검부 131는 이전 오류 수정 이력 또는 취약점 발견 이력이 존재하는 스마트콘트랙트의 소스코드에 대하여 모의해킹 등의 실행 취약점 점검 기준을 강화하도록 설정할 수 있다. 이에 대응하여 상기 실행 취약점 점검부 133는 강화된 기준에 따라 해당 스마트콘트랙트 소스코드로 구현된 앱(또는 웹)의 취약점 점검(예, 모의해킹 등)을 수행하도록 운영자에게 요청할 수 있다.
상기 소스코드 취약점 점검부 131, 통신구간 점검부 132 및 실행 취약점 점검부 133에 의한 취약점 점검이 완료되고 취약점 점검 기준을 통과한 스마트콘트랙트에 대하여 인증서 발급부 134는 인증서를 발급할 수 있다.
상기 인증서 발급부 134는 상기 소스코드 취약점 점검부, 통신구간 점검부 및 실행 취약점 점검부에 의한 점검 결과 보안 수준이 요구 조건을 만족하는 것으로 판단되는 경우 인증서를 발급하며, 발급된 인증서가 상기 스마트콘트랙트의 소스코드가 저장되는 블록체인 블록에 상기 소스코드와 함께 저장되도록 제어할 수 있다.
또한 상기 인증서 발급부 134는 인증서를 발급하되, 인증서를 의미하는 코드 정보 및 해시 값을 포함하여 상기 인증서를 발급하고, 인증서 코드 정보 및 스마트콘트랙트 소스코드의 내용에 기반하여 상기 해시 값을 산출할 수 있다. 상기 인증서 코드정보는 예컨대, 인증 주체에 대한 정보, 인증 일자에 대한 정보, 인증 유효 기준에 대한 정보 등을 포함할 수 있다. 상기 해시값은 인증서를 의미하는 코드가 소스코드와 관계없이 복제되는 것을 방지할 수 있다. 상기 해시값은 인증서 코드가 동일하다고 하더라도 스마트콘트랙트의 소스코드가 다른 경우 다른 값을 갖게 될 것이며, 이에 따라 상이한 복제된 인증서를 보유하고 있는 경우에, 상기 인증서에 포함된 해시값은 해당 소스코드에 대하여 발급받은 값이 아니므로 유효성을 인정받을 수 없게 된다.
이 밖에도 보다 다양한 실시 예에 따라 상기 인증서 발급부 134는 인증서 복제 방지를 위해 다양한 요소를 추가한 후 연산하여 해시값을 산출할 수 있다.
상기 인증서 발급부 134는 통신부 110를 통해 발급된 인증서가 블록체인의 블록 바디에 트랜잭션 데이터로서 전송 및 저장되도록 제어할 수 있다.
다양한 실시 예에 따라 상기 인증서 발급부 134는 유효 기준을 포함하여 인증서를 발급할 수 있다. 예컨대, 상기 인증서 발급부 134는 인증서 발급 시점에서 인증 기준이 추후 변경될 가능성이 있고, 새로운 위협 요소가 추가될 가능성이 있으므로, 인증서 발급시 유효기간 정보를 포함하여 발급할 수 있다.
또한 다양한 실시 예에 따라 상기 인증서 발급부 134는 퍼블릭 블록체인 데이터베이스를 대상으로(퍼블릭 블록체인의 블록 바디에 트랜젝션 데이터로서 전송 및 저장) 발급되는 인증서와 프라이빗 블록체인 데이터베이스를 대상으로 발급되는 인증서를 구분할 수 있다. 이는 퍼블릭 블록체인 데이터베이스와 프라이빗 블록체인 데이터베이스의 구조적인 차이점에 기인하는데, 퍼블릭 블록체인은 읽기 권한이 모두에게 있고, 누구나 트랜잭션을 생성할 수 있으며, 거래 검증 및 승인 또한 네트워크에 참여한 주체라면 가능하다는 특징이 있다. 한편 퍼블릭 블록체인은 수정이 어렵다는 특징이 있다. 퍼블릭 블록체인에 기록되는 인증서의 내용은 수정될 수 없으므로 퍼블릭 블록체인을 대상으로 발급되는 인증서는 추후 유효성을 철회하기 위한 수정을 수행하는 대신 초기 생성시 유효기간 등의 유효기준을 포함하여 발급될 수 있고, 이에 따라 스마트콘트랙트 제공자 측은 정기적으로 인증서를 재발급해야 할 수 있다.
한편, 프라이빗 블록체인은 기존 중앙화 방식을 그대로 유지한 상태에서 블록체인이 갖는 신뢰보증의 장점을 채택한 시스템이다. 이러한 프라이빗 블록체인은 중앙에 의한 노드별 다른 권한을 갖는 것이 가능하며, 이는 즉 중앙에 의한 제어가 가능함을 의미한다. 이에 따라 프라이빗 블록체인 상에서는 저장된 인증서라도 추후 수정 및 폐기가 가능하다. 즉, 상기 인증서 발급부 134는 추후 폐기 및 수정이 가능하도록 인증서를 발급할 수 있는데, 예컨대, 유효횟수 정보를 포함하여 인증서를 발급할 수 있다. 상기 인증서 발급부 134는 유효 횟수를 예컨대, 100회라고 설정한 경우, 100회의 인증서 열람 및 인증 수행 횟수가 카운트되면 해당 인증서가 무효화되도록 설정된 인증서를 발급할 수 있다. 상기 인증서 발급부 134는 이를 위해서 인증서의 초기값을 100으로 지정하고, 인증 완료 및 거래가 수행될 때마다 상기 초기값에서 숫자를 1씩 차감하도록 하는 코드를 새로 전송하는 방식으로 인증서의 내용을 수정할 수 있다. 이와 같은 방식을 통해 초기 부여된 유효횟수가 모두 차감되면 상기 인증서는 유효하지 않은 것으로 인식될 수 있다.
다양한 실시 예에 따라 상기 인증서 발급부 134는 퍼블릭 블록체인에 인증서를 기록할 경우, 인증서의 유효기간을 포함하여 인증서를 발급하고, 프라이빗 블록체인에 인증서를 기록할 경우 인증서의 유효횟수를 포함하여 인증서를 발급할 수 있다.
또한 상기 인증서 발급부 134는 인증서 만료일이 도래하거나 유효 횟수가 기 설정된 숫자 이하가 되면 인증서 갱신에 대한 알림을 제공할 수 있다.
도 3은 본 발명의 실시 예에 따른 스마트콘트랙트의 보안 인증서 발급 과정에 대하여 도시한 순서도이다.
서버100는(통신부 110) 스마트콘트랙트의 소스코드의 내용을 수신하는 305동작을 수행할 수 있다. 이후 상기 서버 100의 제어부 130는 수신한 소스코드의 취약점을 점검하는 310동작을 수행할 수 있다. 이 때 상기 제어부 130는 소스코드가 취약점이 발견되어 수정된 이력이 있는 소스코드인지 여부를 판단할 수도 있다. 취약점 발견 및 수정 이력이 존재하는 소스코드에 대하여 상기 제어부 130는 추후 수행되는 웹/앱 취약점 점검시의 기준치를 증가 설정하도록 요청할 수 있다.
상기 소스코드 취약점 점검 310동작 이후 상기 제어부 130는 소스코드를 브라우저상에서 실행하는 315동작을 수행할 수 있다. 이후 상기 제어부 130는 상기 소스코드의 통신 구간에서의 취약점을 점검하는 320동작을 수행할 수 있다. 이후 상기 제어부 130는 해당 소스코드가 구현된 앱 및 웹 상에서의 취약점을 점검하는 325동작을 수행할 수 있다.
이후 상기 제어부 130는 취약점 점검을 통해 취약점이 발견되는지 여부를 판단하는 330동작을 수행할 수 있고, 취약점이 존재하는 경우 취약점 항목을 기록 및 인증서 발급 동작을 중지하는 340동작을 수행할 수 있다. 상기 340동작은 취약점 항목을 기록하여 소스코드 제공자에게 피드백하는 동작을 포함할 수 있다.
한편, 취약점이 발견되지 않는 경우 상기 제어부 130는 인증서를 발급하고 발급된 인증서를 블록체인 상에 트랜잭션 데이터로 등록하는 335동작을 수행할 수 있다.
다양한 실시 예에 따라 상기 제어부는 310동작, 320동작 및 325동작 각 단계에서 취약점 발견 여부를 판단할 수 있으며, 각 단계에서 취약점이 발견됨에 따라 340동작을 수행할 수 있다.
또한 상기 제어부 130는 325동작 시, 310동작 및 320동작 중 적어도 하나에 의해 취약점이 발견된 경우 325동작에서의 취약점 판단 기준을 상향 조정할 수 있으며, 이에 따라 상기 제어부 130는 325동작시 변경된 기준치에 따라 취약점 점검 동작을 수행할 수 있다.
그리고 상기 제어부 130가 인증서를 발급할 시, 상기 제어부 130의 인증서 발급부 134가 동작하게 되며, 상기 인증서 발급부134는 인증서 발급시 인증서를 코드 정보 및 해시 값을 포함하여 발급하고, 인증서 코드 정보 및 스마트콘트랙트 소스코드의 내용에 기반하여 상기 해시 값을 생성하는 특징이 있다. 또한 상기 인증서 발급부 134는 인증서의 유효 인증 조건을 설정하여 발급할 시, 상기 유효 인증 조건은 기 설정된 인증 횟수, 기 설정된 기간을 포함할 수 있다. 또한 상기 인증서 발급부 134는 보안 취약점이 발견되어 수정된 이력이 있는 스마트콘트랙트에 대한 인증서 발급 시, 인증 유효기간을 기 설정된 디폴트값보다 단축하여 설정하고, 단축 설정된 유효기간에 대한 정보를 포함하여 상기 인증서의 해시값을 산출할 수 있다. 또한 상기 인증서 발급부 134는 퍼블릭 블록체인에 인증서를 기록할 경우, 인증서의 유효기간을 포함하여 인증서를 발급하고, 프라이빗 블록체인에 인증서를 기록할 경우 인증서의 유효횟수를 포함하여 인증서를 발급할 수 있다.
도 4는 본 발명의 실시 예에 따른 인증서 확인 동작의 순서를 도시한 순서도이다.
상기 제어부 130는 스마트콘트랙트 요청 신호를 수신하는 405동작을 수행하게 되면, 해당 스마트콘트랙트에 대응하는 인증서를 해당 블록의 트랜잭션 기록 내역상에서 탐색하는 410동작을 수행할 수 있다. 이 때 상기 제어부 130는 서버 100에 기 저장된 스마트콘트랙트별 인증서 저장위치 정보를 참조하여 상기 인증서를 탐색할 수 있다.
상기 제어부 130는 이후 인증서가 존재하는지 여부를 판단하는 415동작을 수행할 수 있고, 존재하지 않는 것으로 판단되는 경우 스마트 콘트랙트 동작을 중단하도록 요청하는 425동작을 수행할 수 있다.
한편, 상기 제어부 130는 인증서가 존재하는 것으로 판단되면, 해당 인증서를 열람하여 유효한 인증서인지 여부를 판단하는 420동작을 수행할 수 있다. 이 때 인증서의 유효성을 판단하기 위해, 상기 제어부 130는 인증서 내에 포함된 유효기간 등의 유효 조건을 평가할 수 있다. 또한 상기 제어부 130는 상기 인증서에 포함된 해시값을 비교하여 해당 인증서의 위변조 여부를 판단할 수 있다.
이후 상기 제어부 130는 해당 인증서가 유효한 인증서라고 판단되는 경우, 스마트 콘트랙트 동작을 승인하는 430동작을 수행할 수 있다. 반면 유효하지 않은 경우 마찬가지로 상기 제어부 130는 해당 스마트콘트랙트 동작을 중단하도록 요청할 수 있다.
상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 요컨대 본 발명이 의도하는 효과를 달성하기 위해 도면에 도시된 모든 기능 블록을 별도로 포함하거나 도면에 도시된 모든 순서를 도시된 순서 그대로 따라야만 하는 것은 아니며, 그렇지 않더라도 얼마든지 청구항에 기재된 본 발명의 기술적 범위에 속할 수 있음에 주의한다.
100 : 스마트콘트랙트 보안 인증 서버
110 : 통신부
120 : 저장부
130 : 제어부
131 : 소스코드 취약점 점검부
132 : 통신구간 점검부
133 : 실행 취약점 점검부
134 : 인증서 발급부

Claims (8)

  1. 스마트콘트랙트 소스코드에 대한 보안 인증을 수행하는 서버에 있어서,
    보안 인증을 요청하는 서버로부터 스마트콘트랙트 소스코드를 수신하는 통신부; 및
    상기 수신된 스마트콘트랙트 소스코드를 기반으로 보안 취약점을 검증하는 제어부;를 포함하여 구성하되,
    상기 제어부는
    스마트콘트랙트의 소스코드를 열람하여 소스코드의 취약점을 점검하는 소스코드 취약점 점검부;
    상기 소스코드의 실행을 위한 통신 구간을 점검하는 통신구간 점검부;
    상기 소스코드가 실행되는 브라우저상에서의 앱 및 웹 취약점을 점검하는 실행 취약점 점검부; 및
    상기 소스코드 취약점 점검부, 통신구간 점검부 및 실행 취약점 점검부에 의한 점검 결과 보안 수준이 요구 조건을 만족하는 것으로 판단되는 경우 인증서를 발급하여 상기 스마트콘트랙트의 소스코드가 저장되는 블록체인 블록에 상기 소스코드와 함께 저장되도록 제어하는 인증서 발급부;를 포함하고,
    상기 실행 취약점 점검부는
    상기 소스코드 취약점 점검부 및 통신구간 점검부 중 적어도 하나에서 취약점이 감지되어 수정된 이력이 존재하는 스마트콘트랙트에 대하여 모의 해킹 통과 기준치를 증가하여 취약점 점검을 수행하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 인증서 발급부는
    인증서를 코드 정보 및 해시 값을 포함하여 발급하고,
    인증서 코드 정보 및 스마트콘트랙트 소스코드의 내용에 기반하여 상기 해시 값을 생성하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  3. 제 1항에 있어서,
    상기 인증서 발급부는
    인증서의 유효 인증 조건을 설정하여 발급할 시, 상기 유효 인증 조건은 기 설정된 인증 횟수, 기 설정된 기간을 포함하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  4. 삭제
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 인증서 발급부는
    보안 취약점이 발견되어 수정된 이력이 있는 스마트콘트랙트에 대한 인증서 발급 시, 인증 유효기간을 기 설정된 디폴트값보다 단축하여 설정하고, 단축 설정된 유효기간에 대한 정보를 포함하여 상기 인증서의 해시값을 산출하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  6. 제 1항에 있어서,
    상기 제어부는
    스마트콘트랙트의 동작을 수행을 위해 인증서 확인을 수행하되, 트랜잭션 위치 정보를 기반으로 인증서의 존재 여부를 판단하며, 상기 인증서가 존재하는 경우, 상기 인증서의 코드 및 해시값을 수신하여 유효성 여부를 판단하고, 유효한 인증서로 판단되는 경우에 대응하는 스마트콘트랙트 동작을 수행하도록 승인하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  7. 제 1항에 있어서,
    상기 소스코드 취약점 점검부는
    점검 대상 소스코드에서 취약점이 발견되면, 인증서 발급을 위한 후속 동작을 중단하고, 확인된 취약점 항목 목록 및 수정 사항을 보고하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
  8. 제 1항에 있어서,
    상기 인증서 발급부는
    퍼블릭 블록체인에 인증서를 기록할 경우, 인증서의 유효기간을 포함하여 인증서를 발급하고, 프라이빗 블록체인에 인증서를 기록할 경우 인증서의 유효횟수를 포함하여 인증서를 발급하는 것을 특징으로 하는 스마트콘트랙트 보안 인증 서버.
KR1020180105594A 2018-09-04 2018-09-04 스마트콘트랙트의 보안 인증 서버 KR101947760B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180105594A KR101947760B1 (ko) 2018-09-04 2018-09-04 스마트콘트랙트의 보안 인증 서버
US16/468,279 US11170097B1 (en) 2018-09-04 2019-05-20 Secure authentication server for smart contract
PCT/KR2019/006017 WO2020050474A1 (ko) 2018-09-04 2019-05-20 스마트콘트랙트의 보안 인증 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180105594A KR101947760B1 (ko) 2018-09-04 2018-09-04 스마트콘트랙트의 보안 인증 서버

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190013104A Division KR102143511B1 (ko) 2019-01-31 2019-01-31 스마트 거래의 보안 안정성 관리 서버

Publications (1)

Publication Number Publication Date
KR101947760B1 true KR101947760B1 (ko) 2019-02-13

Family

ID=65366501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180105594A KR101947760B1 (ko) 2018-09-04 2018-09-04 스마트콘트랙트의 보안 인증 서버

Country Status (3)

Country Link
US (1) US11170097B1 (ko)
KR (1) KR101947760B1 (ko)
WO (1) WO2020050474A1 (ko)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948345A (zh) * 2019-03-20 2019-06-28 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、系统
CN110033244A (zh) * 2019-03-15 2019-07-19 阿里巴巴集团控股有限公司 基于区块链的智能合约执行方法及装置和电子设备
CN110059837A (zh) * 2019-04-30 2019-07-26 安徽德宾信息科技有限公司 一种设备点检管理系统
KR102008001B1 (ko) * 2019-02-21 2019-08-06 주식회사 모파스 블록체인을 이용하여 스마트 계약을 생성하는 시스템
CN110737899A (zh) * 2019-09-24 2020-01-31 暨南大学 一种基于机器学习的智能合约安全漏洞检测方法
CN111028077A (zh) * 2019-11-20 2020-04-17 华中科技大学 一种基于输入过滤器的智能合约防护方法及系统
CN111026578A (zh) * 2019-11-15 2020-04-17 杭州云象网络技术有限公司 一种基于预言机的智能合约安全检测方法
KR20200103452A (ko) * 2019-02-25 2020-09-02 에스에프블록체인 주식회사 보안이 향상된 분산원장 시스템 및 이를 이용한 분산원장기술 기반의 서비스 제공방법
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
CN111898134A (zh) * 2020-08-03 2020-11-06 北京理工大学 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置
CN112380541A (zh) * 2020-11-16 2021-02-19 深圳壹账通智能科技有限公司 智能合约的漏洞的检测方法、装置及计算机设备
KR102227403B1 (ko) * 2020-12-09 2021-03-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
KR102247233B1 (ko) * 2019-10-28 2021-05-03 주식회사 린아레나 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치
CN112990941A (zh) * 2021-03-10 2021-06-18 武汉大学 一种针对智能合约中庞氏骗局的漏洞检测方法及系统
WO2022108318A1 (ko) * 2020-11-17 2022-05-27 주식회사 수호아이오 스마트 컨트랙트 코드 취약점 분석 장치 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI128506B (en) * 2019-01-28 2020-06-30 Elisa Oyj Automatic network deployment
US10825024B1 (en) * 2019-04-12 2020-11-03 Symbiont.Io, Inc. Systems, devices, and methods for DLT-based data management platforms and data products
US11914721B2 (en) * 2019-06-12 2024-02-27 Nec Corporation Method and contract rewriting framework system for supporting smart contracts in a blockchain network
JP7306170B2 (ja) * 2019-09-03 2023-07-11 富士通株式会社 通信プログラムおよび通信方法
KR20220058928A (ko) * 2019-09-05 2022-05-10 오픈 렌즈 프로젝트 리미티드 디지털 미디어 콘텐츠 관리 시스템 및 방법
CN111464643B (zh) * 2020-04-01 2021-07-09 西安交通大学 一种基于区块链的多能源交易与管理平台
CN111753306B (zh) * 2020-05-29 2022-08-05 西安深信科创信息技术有限公司 一种智能合约漏洞检测方法、装置、电子设备及存储介质
CN115391789A (zh) * 2022-09-14 2022-11-25 杭州安碣信息安全科技有限公司 一种Rust智能合约智能分析方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101680260B1 (ko) 2015-12-14 2016-11-29 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법
JP2018036893A (ja) 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101810150B1 (ko) * 2015-04-09 2018-01-26 (주)아이씨엔캐스트 모바일 단말과 IoT기기간 제3자 보안인증 시스템 및 방법
KR20180041055A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
US11310234B2 (en) * 2017-11-16 2022-04-19 International Business Machines Corporation Securing permissioned blockchain network from pseudospoofing network attacks
US20190306173A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Alert smart contracts configured to manage and respond to alerts related to code
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
US20190303541A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Auditing smart contracts configured to manage and document software audits
US10924484B2 (en) * 2018-04-26 2021-02-16 Radware, Ltd. Method for determining a cost to allow a blockchain-based admission to a protected entity
US10769869B2 (en) * 2018-06-27 2020-09-08 International Business Machines Corporation Self-driving vehicle integrity management on a blockchain
US10656936B2 (en) * 2018-08-30 2020-05-19 Dell Products L.P. Systems and methods for software integrity validation using blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101680260B1 (ko) 2015-12-14 2016-11-29 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법
JP2018036893A (ja) 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102008001B1 (ko) * 2019-02-21 2019-08-06 주식회사 모파스 블록체인을 이용하여 스마트 계약을 생성하는 시스템
KR102218163B1 (ko) * 2019-02-25 2021-02-23 이지스체인 주식회사 보안이 향상된 분산원장 시스템 및 이를 이용한 분산원장기술 기반의 서비스 제공방법
KR20200103452A (ko) * 2019-02-25 2020-09-02 에스에프블록체인 주식회사 보안이 향상된 분산원장 시스템 및 이를 이용한 분산원장기술 기반의 서비스 제공방법
CN110033244A (zh) * 2019-03-15 2019-07-19 阿里巴巴集团控股有限公司 基于区块链的智能合约执行方法及装置和电子设备
CN109948345A (zh) * 2019-03-20 2019-06-28 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、系统
CN110059837A (zh) * 2019-04-30 2019-07-26 安徽德宾信息科技有限公司 一种设备点检管理系统
CN110737899B (zh) * 2019-09-24 2022-09-06 暨南大学 一种基于机器学习的智能合约安全漏洞检测方法
CN110737899A (zh) * 2019-09-24 2020-01-31 暨南大学 一种基于机器学习的智能合约安全漏洞检测方法
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
KR102247233B1 (ko) * 2019-10-28 2021-05-03 주식회사 린아레나 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치
CN111026578A (zh) * 2019-11-15 2020-04-17 杭州云象网络技术有限公司 一种基于预言机的智能合约安全检测方法
CN111026578B (zh) * 2019-11-15 2023-09-29 杭州云象网络技术有限公司 一种基于预言机的智能合约安全检测方法
CN111028077A (zh) * 2019-11-20 2020-04-17 华中科技大学 一种基于输入过滤器的智能合约防护方法及系统
CN111028077B (zh) * 2019-11-20 2023-04-11 华中科技大学 一种基于输入过滤器的智能合约防护方法及系统
CN111898134A (zh) * 2020-08-03 2020-11-06 北京理工大学 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置
CN111898134B (zh) * 2020-08-03 2022-11-11 北京理工大学 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置
CN112380541A (zh) * 2020-11-16 2021-02-19 深圳壹账通智能科技有限公司 智能合约的漏洞的检测方法、装置及计算机设备
WO2022108318A1 (ko) * 2020-11-17 2022-05-27 주식회사 수호아이오 스마트 컨트랙트 코드 취약점 분석 장치 및 방법
KR102227403B1 (ko) * 2020-12-09 2021-03-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
CN112990941B (zh) * 2021-03-10 2022-06-07 武汉大学 一种针对智能合约中庞氏骗局的漏洞检测方法及系统
CN112990941A (zh) * 2021-03-10 2021-06-18 武汉大学 一种针对智能合约中庞氏骗局的漏洞检测方法及系统

Also Published As

Publication number Publication date
US11170097B1 (en) 2021-11-09
WO2020050474A1 (ko) 2020-03-12
US20210334363A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
KR101947760B1 (ko) 스마트콘트랙트의 보안 인증 서버
US9087183B2 (en) Method and system of securing accounts
US20150121532A1 (en) Systems and methods for defending against cyber attacks at the software level
RU2446459C1 (ru) Система и способ проверки веб-ресурсов на наличие вредоносных компонент
Yang et al. Model-based security testing: An empirical study on oauth 2.0 implementations
US20140089661A1 (en) System and method for securing network traffic
USRE47533E1 (en) Method and system of securing accounts
US10692138B1 (en) Secure data exchange
EP3270319B1 (en) Method and apparatus for generating dynamic security module
US11783016B2 (en) Computing system and method for verification of access permissions
US10015191B2 (en) Detection of man in the browser style malware using namespace inspection
CN113315637B (zh) 安全认证方法、装置及存储介质
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
CN116319024A (zh) 零信任系统的访问控制方法、装置及零信任系统
Toreini et al. DOMtegrity: ensuring web page integrity against malicious browser extensions
US20200076793A1 (en) Management device, management system, and non-transitory computer readable medium
Rahat et al. Cerberus: Query-driven scalable vulnerability detection in oauth service provider implementations
KR102143511B1 (ko) 스마트 거래의 보안 안정성 관리 서버
CN112769731B (zh) 一种进程控制方法、装置、服务器及存储介质
CN116996238A (zh) 一种网络异常访问的处理方法以及相关装置
Hagar Security owasp iot information pointer and logging events
Rahat et al. Cerberus: Query-driven Scalable Security Checking for OAuth Service Provider Implementations
RU2780029C1 (ru) Способ идентификации онлайн-пользователя и его устройства
CN117951036B (zh) 用户识别卡安全检测方法、设备及计算机可读存储介质
RU2740308C1 (ru) Способ идентификации онлайн-пользователя и его устройства

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant