KR20220141276A - 샌드박스 및 인공지능을 사용한 블록체인 스마트 계약 기반 디지털 자산에 대한 지속적인 취약점 관리 시스템 - Google Patents

샌드박스 및 인공지능을 사용한 블록체인 스마트 계약 기반 디지털 자산에 대한 지속적인 취약점 관리 시스템 Download PDF

Info

Publication number
KR20220141276A
KR20220141276A KR1020227016104A KR20227016104A KR20220141276A KR 20220141276 A KR20220141276 A KR 20220141276A KR 1020227016104 A KR1020227016104 A KR 1020227016104A KR 20227016104 A KR20227016104 A KR 20227016104A KR 20220141276 A KR20220141276 A KR 20220141276A
Authority
KR
South Korea
Prior art keywords
digital assets
vulnerable
engine
asset
digital
Prior art date
Application number
KR1020227016104A
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 언체인.에이아이 인코포레이티드
Publication of KR20220141276A publication Critical patent/KR20220141276A/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0635Risk analysis of enterprise or organisation activities
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Marketing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Finance (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

디지털 자산들을 식별하고, 분석하고, 보호하고, 그리고 보고하기 위한 지속적인 취약점 관리 시스템이 개시된다. 지속적인 취약점 관리 시스템은, 정적 코드 스캐닝을 위한 정적 분석 유닛, 컴파일된 코드를 분석하기 위한 동적 분석 유닛, 및 리스크 스코어를 프로세싱하고 감사 보고서를 생성하기 위한 통계적 분석 유닛을 포함하는, 취약점들에 대해 디지털 자산들을 스캔하도록 구성된 샌드박스 엔진을 포함한다. 디지털 자산들에 대한 새로운 취약점들에 관련된 정보를 획득하도록 구성된 지식 베이스 엔진을 포함하는 지식 베이스가 또한 개시된다. 리스크 스코어링 엔진은 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하도록 구성된다. 보안 제어 시스템은 식별된 취약한 자산에 할당된 리스크 스코어에 기반하여 식별된 취약한 자산에 대해 조치하도록 구성된다.

Description

샌드박스 및 인공지능을 사용한 블록체인 스마트 계약 기반 디지털 자산에 대한 지속적인 취약점 관리 시스템
[0001] 스마트 계약 감사(smart contract auditing) 분야는, 그것의 상대적으로 짧은 역사에서, 취약점들에 대한 보호 및/또는 신속한 대응을 보장하기 위해 이미 많은 난제들을 제시한다. 그러한 보호 및 대응에 대한 동기는 명백하다: 스마트 계약 취약점들은 금융 기관들에 수백만 달러의 비용을 치르게 할 수 있다. 지난 몇 년 동안의 2 가지 경우들 - 20억 USD 초과의 시장 가치로 이어지는 오버플로(overflow) 버그를 포함하는 BeautyChainTM 토큰(2018), 및 재진입 취약점으로 인해 수백만 달러의 손실을 야기한 DAO 해킹(2016) -은, 스마트 계약 취약점 난제들의 증거를 제공한다. 암호자산(crypto asset)의 스마트 계약은 취약점들에 대한 리스크 노출을 가지며, 따라서 지속적인 보호를 필요로 한다.
[0002] 스마트 계약 취약점들에 대한 기존의 솔루션들은 취약점들을 검출하고, 격리하고, 제어하고, 그리고 보고하려고 시도해 왔지만, 애초에 이들은 일반적으로 취약점들이 유발될 수 있게 하는 동일한 결함들을 겪는다. 감사는 너무 자주, 수동 전문가 감사, 예컨대 애드 혹 체크(ad hoc check)들 및 "아이볼링(eyeballing)"의 형태를 취한다. 공식 검증 프로세스들, 즉, 정확한 코드를 수학적으로 증명하는 것이 준비되어 있을 수 있지만, 결정론적 복잡성, 또는 다양한 입력들 및 초기 조건들이 상이한 결과들로 이어지는지를 체크하는 것의 불가능성의 경향이 매우 높다. 더욱이, 형식 검증들에 종종 사용되는 알고리즘들은 수학적 증명자 알고리즘(mathematical prover algorithm)을 가이드하기 위해 코드 내에 수동 주석들을 요구하며, 이로써 수동 에러(들)의 가능성을 크게 증가시킨다. 일부 오픈 소스 툴들은 코드 텍스트를 분석가능할 수 있지만, 이들은 체계적인 설계 및 유지보수성이 결여되어 있고, 따라서 기업 표준을 충족시키지 못한다.
[0003] 따라서, 체계적인 설계 및 유지보수성과 함께 모니터링 및 작동(running) 알고리즘들의 자동화를 포함하는, 엄격한 금융 기업 등급의 취약점 관리 표준을 충족하는 스마트 계약 모니터링 솔루션이 필요하다.
[0004] 샌드박스 및 인공 지능을 사용하는 블록체인 스마트 계약 기반 디지털 자산들을 위한 지속적인 취약점 관리 시스템이 개시된다. 일 실시예에서, 블록체인 디지털 자산들에 대한 취약점 관리 시스템은 취약점들에 대해 디지털 자산들을 스캔하도록 구성된 샌드박스 엔진을 포함한다. 시스템은 또한 인공 지능을 포함하는 지식 베이스 엔진(knowledge base engine)을 포함하며, 지식 베이스 엔진은 새로운 취약점들 및 위협 지능(threat intelligence)에 관련된 정보를 획득하도록 구성된다. 머신 러닝(machine learning)을 포함하는 리스크 스코어링 엔진이 또한 시스템의 일부이며, 리스크 스코어링 엔진은 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하도록 구성된다. 보안 제어 시스템은 식별된 취약한 자산에 할당된 리스크 스코어에 기반하여 식별된 취약한 자산에 대해 조치(action)를 취하도록 구성된다.
[0005] 다른 실시예에서, 디지털 자산들을 보호하는 방법이 개시되며, 방법은 샌드박스 엔진을 사용하여 취약점들에 대해 디지털 자산들을 스캔하는 단계, 및 인공 지능을 포함하는 지식 베이스 엔진을 사용하여 새로운 취약점들 및 위협 지능에 관련된 정보를 획득하는 단계를 포함한다. 방법은, 머신 러닝을 포함하는 리스크 스코어링 엔진을 사용하여 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하는 단계를 포함한다. 추가로, 방법은 보안 제어 시스템을 사용하여 식별된 취약한 자산에 할당된 리스크 스코어에 기반하여 식별된 취약한 자산에 대해 조치를 취하는 단계를 포함한다.
[0006] 또 다른 실시예에서, 비-일시적인 컴퓨터-판독가능 저장 매체가 개시되며, 컴퓨터-판독가능 저장 매체는, 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 샌드박스 엔진을 사용하여 취약점들에 대해 디지털 자산들을 스캔하고, 인공 지능을 포함하는 지식 베이스 엔진을 사용하여 새로운 취약점들 및 위협 지능에 관련된 정보를 획득하게 하는 명령들을 포함한다. 실행된 명령들은 또한 컴퓨터로 하여금, 머신 러닝을 포함하는 리스크 스코어링 엔진을 사용하여 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하게 한다. 추가로, 실행된 명령들은 컴퓨터로 하여금 보안 제어 시스템을 사용하여 식별된 취약한 자산에 할당된 리스크 스코어에 기반하여 식별된 취약한 자산에 대해 조치를 취하게 한다.
[0007] 임의의 특정 요소 또는 행위의 논의를 용이하게 식별하기 위해, 참조 번호의 최상위 숫자 또는 숫자들은 그 요소가 처음 도입된 도면 번호를 나타낸다.
[0008] 도 1은 일 실시예에 따른 연속적인 취약점 관리 시스템(100)을 예시한다.
[0009] 도 2는 일 실시예에 따른 샌드박스 엔진 유닛들(200)을 예시한다.
[0010] 도 3은 일 실시예에 따른 가상 머신(300)에서의 동적 실행을 예시한다.
[0011] 도 4는 일 실시예에 따른 머신 러닝(400)을 예시한다.
[0012] 도 5는 일 실시예에 따른 리스크 스코어링 엔진(500)을 예시한다.
[0013] 도 6은 일 실시예에 따른 디지털 자산 트레이딩 거래소(600)를 예시한다.
[0014] 도 7은 일 실시예에 따른 예방적(proactive) 스캐닝(700)을 예시한다.
[0015] 도 8은 일 실시예에 따른 스마트 계약(800)을 예시한다.
[0016] 도 9는 일 실시예에 따른 방향성 비순환 그래프(directed acyclic graph)(900)를 예시한다.
[0017] 도 10은 일 실시예에 따른 감사 보고서(1000)를 예시한다.
[0018] 도 11은 일 실시예에 따른 디지털 자산들을 보호하는 방법(1100)을 예시한다.
[0019] 도 12는 일 실시예에 따른 블록체인 트랜잭션 프로세스(1200)를 예시한다.
[0020] 도 13은 일 실시예에 따른 블록체인 포메이션(1300)을 예시한다.
[0021] 도 14는 일 실시예에 따른 블록체인(1400)을 예시한다.
[0022] 도 15는 일 실시예에 따른 기본 딥 뉴럴 네트워크(basic deep neural network)(1500)를 예시한다.
[0023] 도 16은 일 실시예에 따른 인공 뉴런(1600)을 예시한다.
[0024] 도 17은 본원에서 설명되는 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 컴퓨터 시스템 아키텍처를 묘사한다.
[0025] "우발적 포크(accidental fork)"는, 2명 이상의 채굴자들이 거의 동시에 블록을 발견할 때 발생하는 체인에서의 분지(branching)를 지칭한다. 포크는 후속 블록(들)이 추가되고 체인들 중 하나가 대안(들)보다 더 길어질 때 해결된다. 네트워크는 가장 긴 체인에 있지 않은 블록들을 포기한다(이들은 고립 블록(orphaned block)들로 지칭됨).
[0026] "조치"는 보안 제어 시스템에 의한 취약한 자산의 발견에 대한 제어 신호 응답, 예컨대, 격리, 알려진 취약한 디지털 자산들에의 추가를 지칭한다.
[0027] "인공 지능"은 인간 지능을 일반적으로 요구하는 작업들, 이를테면 시각적 지각, 스피치 인식, 의사 결정 및 언어들 간의 변환을 수행할 수 있는 컴퓨터 시스템들의 이론 및 개발을 지칭한다.
[0028] "인공 지능 시스템"은 인공 지능 방법들 및/또는 알고리즘들을 포함하는 시스템을 지칭한다.
[0029] "디지털 자산들의 적어도 하나의 데이터베이스"는 글로벌 통계의 데이터베이스와 같은 데이터베이스에 보유되는 디지털 자산들의 집합 중 둘 이상을 지칭한다.
[0030] "감사 보고서 생성 유닛"은 감사 보고서를 생성하는 수단을 지칭한다. 감사 보고서의 실시예들은 통계적 분석 유닛의 통계적 취약점 데이터에 기반한 히트맵(heatmap)을 사용한 디지털 자산 내의 취약점들의 위치를 포함할 수 있다.
[0031] "블록 시간"은 네트워크가 블록체인에서 하나의 추가 블록을 생성하는 데 걸리는 평균 시간을 지칭한다.
[0032] "블록체인"은 암호화된 데이터를 저장하는 데 사용되는 분산형(distributed), 탈중앙화(decentralized), 불변(immutable) 데이터베이스를 지칭한다.
[0033] "코드"는 컴퓨터에 의해 실행되는 컴퓨터 프로그램을 형성하는 명령들의 세트를 지칭한다. 코드는 소스 코드, 컴파일된 코드, 머신 코드 등의 형태를 취할 수 있다.
[0034] "컴파일"은 인간-판독가능 소스 코드를 컴퓨터-실행가능 머신 코드로 변환하는 프로그램 또는 애플리케이션을 지칭한다.
[0035] "컴파일된 코드"는 인간-판독가능 소스 코드로부터 컴퓨터-실행가능 머신 코드로 변환되는 컴퓨터-판독가능 명령들을 지칭한다.
[0036] "암호자산"은, 금융 트랜잭션들을 보호하고, 추가적인 유닛들의 생성을 제어하고, 자산들의 이전을 검증하기 위해 강력한 암호기법(cryptography)을 사용하는 교환 매체로서 작동하도록 설계된 디지털 자산을 지칭한다.
[0037] "암호화폐"는, 중앙 은행과 독립적으로 동작하는, 암호화 기법들이 화폐 단위들의 생성을 조절하고 자금들의 이전을 검증하는 데 사용되는 디지털 화폐를 지칭한다.
[0038] "글로벌 통계의 데이터베이스"는 알려진 디지털 자산들 및 디지털 자산 취약점들에 대한 통계적 분석의 집합을 지칭한다.
[0039] "디지털 자산"은 바이너리 소스로 포맷되고 사용할 권리를 포함하는 임의의 텍스트 또는 매체를 지칭한다. 예시적인 디지털 자산은 스마트 계약이다.
[0040] "디지털 자산 트레이딩 거래소"는 고객들이 암호화폐들 또는 디지털 화폐들을 다른 자산들, 이를테면 종래의 불환지폐(fiat money) 또는 다른 디지털 화폐들과 트레이딩할 수 있게 하는 플랫폼을 지칭한다.
[0041] "동적 분석"은 소프트웨어 디버깅 프로세스의 일부를 포함하고 실시간 실행 동안 프로그램을 평가하는 데 사용되는 테스팅 절차를 지칭한다.
[0042] "동적 분석 능력"은 동적 분석을 수행하는 능력을 지칭한다.
[0043] "동적 분석 유닛"은 동적 분석에 전용되는, 샌드박스 엔진의 부분을 지칭한다.
[0044] "포크(fork)"는, 블록체인이 앞으로 2개의 잠재적 경로들로 분기될 때 발생하는 일을 지칭한다.
[0045] "퍼징(fuzzing)"은 유효하지 않거나, 예상치 못한, 또는 랜덤한 데이터를 컴퓨터 프로그램에 대한 입력들로서 제공하는 것을 수반하는 자동화된 소프트웨어 테스팅 기법을 지칭한다. 이는 또한, 퍼즈 테스팅으로 지칭될 수 있다.
[0046] "하드 포크"는, 이전 규칙들에 따라 블록들을 검증(validate)하는 소프트웨어가 새로운 규칙들에 따라 생성된 블록들을 유효하지 않은 것으로 검출하도록 하는 규칙 변경을 지칭한다.
[0047] "히트맵"은 데이터 값들이 음영들 또는 컬러들로서 표현되는 맵 또는 다이어그램 형태의 데이터의 표현을 지칭한다.
[0048] "히트맵 데이터"는 히트맵을 생성하는 데 사용되는 수치 또는 다른 데이터를 지칭한다.
[0049] "식별된 취약한 자산"은 취약점들을 포함하는 것으로 발견되고 알려진 취약한 디지털 자산들에 포함된 디지털 자산을 지칭한다.
[0050] "키-값 쌍들"은 키 식별자들의 그룹 및 연관된 값들의 세트를 포함하는 추상 데이터 타입을 지칭한다. 키-값 쌍들은 룩업 테이블들, 해시 테이블들 및 구성 파일들에서 빈번하게 사용된다.
[0051] "지식 베이스"는 컴퓨터 시스템에 의해 사용되는 복잡한 구조화된 그리고 구조화되지 않은 정보를 저장하는 데 사용되는 기술을 지칭한다.
[0052] "지식 베이스 엔진"은, 의사 결정을 지원하기 위해 인간 전문가들의 지식을 포착하는 것을 목표로 하는 인공 지능(AI)의 형태를 지칭한다.
[0053] "알려진 적법한(legitimate) 디지털 자산들"은, 취약점들이 없는 것으로 입증된, 통상적으로 데이터베이스에 보유되는 디지털 자산들의 집합을 지칭한다.
[0054] "알려진 취약한 디지털 자산들"은, 취약점들을 포함하는 것으로 입증된, 통상적으로 데이터베이스에 보유되는 디지털 자산들의 집합을 지칭한다.
[0055] "적법한 디지털 자산들"은 취약점들이 없는 것으로 입증된 디지털 자산들을 지칭한다.
[0056] "머신 러닝"은 명시적으로 프로그래밍되지 않고 경험으로부터 자동으로 학습하고 개선하는 능력을 시스템들에 제공하는 인공 지능(AI)의 애플리케이션을 지칭한다.
[0057] "새로운 취약점들"은 이전에 발견되지 않았고 알려진 취약한 디지털 자산들의 데이터베이스에 등록되지 않은 취약점들을 지칭한다.
[0058] "오프라인 트레이닝 엔진"은, 통상적으로 인공 지능에 기반한 모델이 특정 입력들에 기반하여 패턴들 또는 시퀀스들을 학습하는 소프트웨어 프로세스의 비-실행가능(non-excutable) 버전을 지칭한다.
[0059] "온라인 예측 엔진"은 통상적으로 인공 지능에 기반한 모델이 적어도 오프라인 트레이닝 엔진으로부터의 학습에 기반하여 예측들을 수행하는 소프트웨어 프로세스의 동적 버전을 지칭한다.
[0060] "고립 블록들"은 유기된 포크 내의 블록들을 지칭한다.
[0061] "프라이빗 블록체인(private blockchain)"은 누가 네트워크에 액세스하는 지를 관리하기 위해 액세스 제어 층을 사용하는 블록체인들(즉, 허가된 블록체인들)을 지칭한다. 퍼블릭(public) 블록체인 네트워크들과 대조적으로, 프라이빗 블록체인 네트워크들의 검증자(validator)들은 네트워크 소유자에 의해 심사(vet)된다. 이들은 트랜잭션들을 검증하기 위해 익명의 노드들에 의존하지 않으며, 네트워크 효과로부터 이익을 얻지도 않는다. 프라이빗 블록체인들은 또한, '컨소시엄(consortium)' 또는 '하이브리드(hybrid)' 블록체인들의 명칭으로도 불릴 수 있다.
[0062] "제공된 트레이닝 데이터"는, 통상적으로 샌드박스 엔진 내의 유닛들로부터의 특징 벡터들을 포함하는, 오프라인 트레이닝 엔진에 대한 입력들을 지칭한다.
[0063] "재진입 취약점 패턴"은, 취약점이 동시에 작동할 수 있는 다수의 인보케이션(invocation)들로 구성되는, 디지털 자산들의 소프트웨어에서의 패턴을 지칭한다.
[0064] "회귀 모델(regression model)"은 2개 이상의 변수들 사이의 관계를 조사하고 다른 변수들에 기반하여 하나의 변수를 추정하는 데 사용되는 통계적 모델을 지칭한다.
[0065] "리스크 스코어"는 리스크 스코어링 엔진의 수치 출력을 지칭한다.
[0066] "리스크 스코어링 엔진"은 디지털 자산 또는 디지털 자산들의 세트의 잠재적 취약점을 사정(assess)하는 수치 스코어를 표준화된 척도 내에서 할당하는 소프트웨어 애플리케이션 또는 프로세스를 지칭한다.
[0067] "샌드박스"는 테스트되지 않은 코드 변경들 및 실험을 생산 환경 또는 저장소로부터 격리시키는 테스팅 환경을 지칭한다.
[0068] "샌드박스 엔진"은 샌드박스를 실행하기 위한 소프트웨어 애플리케이션을 지칭한다.
[0069] "샌드박스 엔진 결과들"은 샌드박스 엔진에 의해 생성된 바와 같은 데이터, 평가들 및/또는 분석들을 지칭한다. 구체적으로, 샌드박스 엔진의 정적 분석, 동적 분석, 및 통계적 분석의 결과들이다.
[0070] "보안 제어 시스템"은 자산에 대한 위협을 증가시키는 특정 조건들을 인식하고 패턴들을 식별하기 위해 활동 및 유입 데이터를 특성화할 수 있는 액세스 제어 시스템을 지칭한다.
[0071] "유사한 디지털 자산들"은 정적 분석, 동적 분석 및 통계적 분석에 기반하여 유사한 품질들을 나타내는 디지털 자산들을 지칭한다.
[0072] "스마트 계약"은 인간 상호작용 없이 부분적으로 또는 완전히 실행 또는 시행될 수 있는 계약들을 지칭한다. 스마트 계약의 주요 목적들 중 하나는 자동화된 에스크로(escrow)이다. IMF는 블록체인 기술에 기반한 스마트 계약들이 일반적으로 도덕적 해이들을 감소시키고 계약들의 사용을 최적화할 수 있다고 믿는다. 광범위한 사용의 결여로 인해, 이들의 법적 지위는 불분명하다. 특정된 조건들이 충족될 때 실행되는 계약들의 코딩을 가능하게 하는 블록체인 구현. 블록체인 스마트 계약은 합의를 정의하고 실행하는 로직에 의해 가능해진다. 예컨대, 이더리움 솔리디티(ethereum solidity)는 스마트 계약들을 구현하기 위해 튜링-완전(Turing-complete) 프로그래밍 언어 능력을 구현함으로써 이러한 가능성을 실현하기 위해 특별히 구축된 오픈-소스 블록체인 프로젝트이다.
[0073] "소프트 포크"는 예전 소프트웨어에 의해 유효한 것으로 인식되는 블록들을 생성하는 규칙들의 변경을 지칭하며, 즉, 소프트 포크는 이전 것과 호환가능하다(backwards-compatible).
[0074] "정적 분석"은 프로그램을 실행하지 않고 서치 코드를 분석 및 평가하는 방법을 지칭한다.
[0075] "정적 분석 유닛"은 정적 분석에 전용되는, 샌드박스 엔진의 영역을 지칭한다.
[0076] "정적 코드 스캐닝"은 알려진 또는 알려지지 않은 취약점들에 대해 정적 코드를 검색하는 행위를 지칭한다.
[0077] "통계적 분석 유닛"은 글로벌 통계의 데이터베이스에 대해 리스크 스코어들을 분석하는 데 전용된 샌드박스 엔진의 영역을 지칭한다.
[0078] "통계적 취약점 데이터"는 글로벌 통계의 데이터베이스로부터의 알려진 취약한 디지털 자산들에 대한 스코어링된 취약점들의 집합을 지칭한다.
[0079] "위협 지능"은 조직이, 조직을 타겟팅한, 타겟팅할, 또는 현재 타겟팅하고 있는 위협들을 이해하기 위해 사용하는 정보를 지칭한다. 이 정보는 가치있는 자원들을 이용하려 하는 사이버 위협들을 대비하고, 방지하고, 그리고 식별하는 데 사용된다.
[0080] "트레이드"는 통상적으로 거래소 내에서의 디지털 자산들의 교환을 지칭한다.
[0081] "트레이딩"은 트레이드들을 교환하는 행위를 지칭한다.
[0082] "가상 머신"은 별개의 컴퓨터의 거동을 보여주지만, 태스크들을 수행시킬 수 있는, 이를테면 별개의 컴퓨터 같이 애플리케이션들 및 프로그램들을 작동시킬 수 있는 소프트웨어 프로그램 또는 운영 시스템을 지칭한다.
[0083] "취약점들"은 시스템을 공격에 노출된 상태로 남겨 둘 수 있는 시스템의 결점들을 지칭하는 사이버-보안 용어를 지칭한다. 취약점은 또한, 컴퓨터 시스템 자체에서, 절차들의 세트에서, 또는 정보 보안을 위협에 노출된 채 남겨두는 임의의 것에서의 임의의 타입의 약점을 지칭할 수 있다.
[0084] "취약한 자산"은 취약점들을 포함하는 것으로 발견된 디지털 자산을 지칭한다.
[0085] 위에서 설명된 난제들을 고려하면, 알려진 그리고 검출가능한 취약점들에 대한 스마트 계약들의 연속적인 보호를 위한 혁신적인 시스템 설계 및 방법은 광범위한 특징들의 세트를 포함한다. 첫째로, 설계 및 방법은 행동 정확도를 포함할 수 있다. 스마트 계약들은 종종 (예컨대, 블록체인 상에서) 자동화된 기능들을 수행하기 때문에, 이러한 계약들이 작용하는 방식은 적어도 소스 코드 텍스트의 것과 동일한 취약점들의 위협을 제시할 수 있다. 추가적으로, 분석은 인간 전문가들에 의한 코드 리뷰에 내재된 수동 에러들의 가능성을 감소시키기 위한 자동화 또는 공식 검증과 같은 분석을 돕기 위해 보조 코드 코멘트들을 추가하는 것을 요구할 수 있다.
[0086] 다음으로, 새로운 취약점들이 거의 끊임없이 나타나기 때문에, 설계 및 방법은 적응성을 요구할 수 있다: 새로운 취약점들이 검출되면 취약점들 지식 베이스 및 블록체인 스마트 데이터베이스가 확장되어, 고객들이 자신들의 디지털 자산들에 대한 리스크 인자들보다 앞서 있게 할 수 있다. 적응성과 함께, 엔진들 및 분석은 또한 풍부한 데이터로부터 지능적으로 학습하기 위해 모델 트레이닝 및 유사한 방법들을 통한 학습, 예컨대 머신 러닝/인공 지능을 요구할 수 있다. 마지막으로, 설계 및 방법은 확장성을 요구할 수 있다: 디지털 자산 취약점들을 검출하기 위해 배치된 다양한 엔진들 및 분석 프로세스들은, 새로운 위협들이 발생하거나 새로운 취약점 검출 기술들이 이용가능해짐에 따라 확장, 대체, 업그레이드 또는 달리 대체될 수 있다.
[0087] 본 개시내용 전반에 걸쳐, 이더리움 블록체인에 대해 솔리디티 스마트 계약을 사용하는 특정 예들이 사용되지만, 본 개시내용은 이에 제한되지 않는다. 본 개시내용의 시스템들 및 방법들은 임의의 호환가능한 블록체인들, 이를테면, HYPERLEDGER(IBM), QUORUM(JP Morgan Chase), CORDA(R3 LLC), EOSIO(C++ 및 웹 어셈블리 스마트 계약), TRON(Raybo Technology Co.), 및 신흥 이더리움 스마트 계약 언어들, 이를테면 eWASM(Ethereum WebAssembly)에 적용될 수 있다.
[0088] 도 1을 참조하면, 실시예에 따른 지속적인 취약점 관리 시스템(100)이 도시된다. 지속적인 취약점 관리 시스템(104)은, 암호자산 스마트 계약(106)의 취약점들을 측정하고, 리스크 스코어를 할당하고, 스코어에 대해 보고하고, 조치들, 이를테면 (계약의) 중단, 격리/재개 등을 조언하는 제어 신호(132)를 잠재적으로 피드백하기 위해, 다양한 알고리즘들 및 프로세스들을 통해 암호자산 스마트 계약(106)을 전달하는 다수의 컴포넌트들을 포함한다.
[0089] 지속적 취약점 관리 시스템(104)은 먼저, 자신의 스마트 계약들의 취약점들을 체크하도록 주선했던 금융 기관(102)으로부터 암호자산 스마트 계약(106)을 수신한다. 스마트 계약들은 일반적으로, 자체-실행(self-executing) 계약들이고, 예컨대, 제3자 개입 없이 자동으로 전송될 수 있으며, 구매자와 판매자 사이의 합의 조건들이 코드의 라인들에 직접 기입된다. "암호자산"은, 금융 트랜잭션들을 보호하고, 추가적인 유닛들의 생성을 제어하고, 그리고 자산들의 이전을 검증하기 위해 강력한 암호기법을 사용하는 교환 매체로서 작동하도록 일반적으로 설계된 디지털 자산(130)이다. 본원에 포함된 코드 및 합의들은 분산형, 탈중앙화 블록체인 네트워크에 걸쳐 존재하며, 후자는 스마트 계약들의 자체-실행 특성을 용이하게 한다.
[0090] 샌드박스 엔진(110)은, 금융 기관(102)으로부터의 액티브 트레이드들의 포트폴리오가, 예컨대 50개 내지 100개의 디지털 자산들을 포함할 수 있기 때문에, 암호자산 스마트 계약(106)과 같은 디지털 자산들의 취약점들에 대해, 예컨대 수동 개입 없이, 지속적으로 스캔한다. 샌드박스 엔진(110) 알고리즘들은 수신된 암호자산 스마트 계약(106)과 지식 베이스 엔진(122)의 유사한 디지털 자산들 사이의 코드(정적 코드 및 컴파일된 코드 둘 모두)의 정밀한 비교들을 수행한다. 샌드박스 엔진(110)은 정적 코드 스캐닝, 예컨대 당업자들에게 잘 알려진 검색 및 패턴 매칭 기법들을 통해 정적 텍스트 코드의 이상들 및 에러들에 대한 스캐닝을 수행한다. 샌드박스 엔진(110)은 추가적으로, 스마트 계약 소스 코드를 컴파일된 코드로 컴파일하고 그 컴파일된 코드를 가상 머신 환경, 예컨대 별개의 컴퓨터같이 애플리케이션들 및 프로그램들을 작동시키는 것과 같은 태스크들을 수행할 수 있는 소프트웨어 프로그램 또는 운영 시스템에서 실행한 결과들에 대해 동적 분석을 수행할 수 있다. 지식 베이스 엔진(122)은 새로운 취약점들(136)을 포함하는 소스 및 컴파일된 코드 위협들의 지속적으로 업데이트되고 공개되는 데이터베이스인 위협 지능(126)의 출력들을 포함할 수 있다. 지식 베이스 엔진(122)은 표준 "하트비트" 프로그램, 즉 유연하게 주기적으로 원격 데이터베이스로부터 파일 레코드들을 이전하도록 구성된 프로그램을 통해 위협 지능(126)으로부터 이러한 출력들을 수신할 수 있다. 위협 지능(126)은 인공 지능(134)의 사용에 의해 필터링되거나 그렇지 않으면 상관될 수 있다. 도 2의 논의 및 예시는 샌드박스 엔진(110)의 이러한 다양한 프로세스들을 아래에서 더 상세히 설명한다.
[0091] 일단 정적 분석, 동적 분석 또는 둘 모두를 사용하여 암호자산 스마트 계약(106)이 스캔되면, 결과들은 디지털 자산의 취약점들을 사정하기 위해 리스크 스코어링 엔진(112)에 전달된다. 리스크 스코어링 엔진(112)은 스마트 계약 데이터 소스(128)로부터 수신된 글로벌 통계의 데이터베이스를 포함하는 암호자산 스마트 계약 데이터베이스(124) 내의 레코드들과의 비교들에 적어도 부분적으로 기반하여 자산에 대한 리스크 스코어를 결정한다. 리스크 스코어링 엔진(112)은 암호자산 스마트 계약 데이터베이스(124)로부터의 유사한 디지털 자산들의 집단에 대해 암호자산 스마트 계약(106), 즉, 디지털 자산을 체크함으로써, 디지털 자산의 취약점들과 비교하여 통계적 취약점 데이터를 생성한다. 이러한 비교들 외에도, 리스크 스코어링 엔진(112)은 아래에서 설명되고 도 2에 예시된 바와 같이 회귀 모델, 오프라인 트레이닝 엔진, 온라인 예측 엔진을 추가로 사용함으로써 디지털 자산에 대한 리스크 스코어를 생성한다.
[0092] 스케줄러(114)는 적어도 날짜 및 시간에 따라 디지털 자산들을 수집하는 주기를 결정한다. 스캐닝 스케줄의 (예컨대, 분, 초 등에 대한) 시간 분해능 및 주기성은 금융 기관(102) 또는 지속적인 취약점 관리 시스템(104) 또는 이 둘의 합의에 의해 결정될 수 있다. 추가적으로, 정책 관리자(116)는 취약점들에 따라 취해질 조치들을 결정하는 규칙들 및 표준들을 지정하고, 이러한 결정들을 보안 제어 시스템(120)에 보내 제어 신호(132)로서 금융 기관(102)에 다시 전달되도록 한다. 일단 취약점들이 리스크 스코어를 통해 식별되었으면, 취약점들의 보고(118)가 보안 제어 시스템(120)으로 전달되고, 그러면 보안 제어 시스템(120)은 사정된 디지털 자산 또는 디지털 자산들이 중단, 격리/재개, 또는 다른 보안 대책들의 대상이 될 수 있는지 여부에 대해 금융 기관(102)에 있는 보안 제어기 클라이언트(108)에 경고한다.
[0093] 도 2를 참조하면, 다양한 실시예들에 따른 샌드박스 엔진 유닛들(200)이 설명되고 예시된다. 위에서 언급된 바와 같이, 샌드박스 엔진은 스마트 계약 암호자산(212)에서와 같이 디지털 자산들(202)에서 취약점들에 대해 계속해서 스캔한다. 또한 언급된 바와 같이, 샌드박스 엔진은 코드의 상이한 스테이지들에 대해 2개의 타입들의 스캐닝, 즉, 정적 분석 유닛(204) 경로에 의해 도시된 바와 같은 정적 분석 및 동적 분석 유닛(206) 경로에 의해 도시된 바와 같은 동적 분석을 수행할 수 있다. 디지털 자산 소스 코드는 파일 전송 프로토콜(예컨대, FTP 또는 유사한) 또는 컴퓨터 디바이스들 사이에서 파일들 또는 데이터를 이동시키기 위한 당업자들에게 알려진 다른 전자 파일 복사 수단을 사용하여 샌드박스 엔진에 전송될 수 있다. 정적 코드 스캐닝(216)은 디지털 자산들을 취하고 탐색 및 패턴 매칭 기법들을 통해 이들의 정적 텍스트 코드에서, 이상들 및 에러들, 예컨대 취약점을 야기할 수 있는 사용되지 않는(depredicated) 신택스에 대해 이들을 검색한다. 이상들 및 에러들은 소스 코드가 컴파일되고 실행될 때 피해를 야기하도록 의도된 소프트웨어 루틴들을 나타낼 수 있다. 이들은 그렇지 않으면 특히 소스 코드 형태로 식별하기 어려울 수 있지만, 알려진 소스 코드 위협들을 포함하는 취약점 지식 베이스(210)가 이러한 비교들을 행하는 정적 분석 유닛(204)의 정적 코드 스캐닝(216)을 돕는다. 이러한 비교들로부터의 차이들 및/또는 유사점들은 정적 결과(228)를 포함한다.
[0094] 특정 실시예들에서, 동적 분석 유닛(206)은 또한 스마트 계약 암호자산(212)을 프로세싱하지만, 이 경우에는, 스마트 계약 암호자산(212)으로부터 소스 코드를 컴파일하고, 컴파일된 코드(238)를 보안 환경에서 실행한다. 도시된 바와 같이, 스마트 계약 암호자산(212)에 대한 동적 분석의 제1 단계는 그것의 소스 코드를 컴파일하는 것(222)이다. 소스 코드를 컴파일하는 것은 통상적으로, 고급 프로그래밍 언어로 작성된 문장들을 컴퓨터 프로세서에 의해 사용가능한 기계어(machine language)로 변환하는 특별한 프로그램(즉, "컴파일러")에 의해 수행될 수 있으며, 이는 당업자에게 잘 알려진 프로세스이다. 일단 컴파일되면, 컴파일된 코드(238)는 가상 머신(224)에서 실행을 겪는다. 가상 머신 환경 또는 가상 환경은, 예컨대, 프로그램의 실행(예컨대, 작동시킴)이 멀웨어(malware)를 생성하고, 바이러스들을 심는 등의 경우, 더 넓은 컴퓨팅 환경을 잠재적으로 오염시키지 않으면서, 보안 환경에서 컴파일된 코드(238)의 동적 실행을 가능하게 한다. 기호 실행(symbolic execution)이 또한 가상 머신 보안 환경 내에서 이용가능하여, 잘못된 형식의(malformed) 입력들을 사용하는 퍼즈 테스팅 및 재진입과 같은 알려진 동적 패턴들에 대한 검색들을 가능하게 한다. 위에서 언급된 바와 같이, 취약점 지식 베이스(210)는 (예컨대, 스마트 계약 데이터 소스(128)로부터의) 결과들을 포함하고, 그에 대해 가상 머신(224)에서의 실행이 체크될 수 있다. 일 실시예에서, 취약점 지식 베이스(210)는 샌드박스 엔진의 동적 분석 유닛에 의해 검출될 수 있는 재진입 취약점 패턴(240)을 포함한다. 다른 실시예에서, 재진입 취약점 패턴(240)은 키-값 쌍들(242)로서 설명될 수 있다. 이러한 비교로부터의 차이들 또는 유사점들은 동적 결과(230), 즉, 동적 분석 유닛(206)의 출력을 포함한다.
[0095] 도시된 바와 같이, 온라인 예측 엔진(226)은 각각의 취약한 자산(234)에 대한 리스크 스코어(232)를 생성하기 위해, 디지털 자산들의 정적 분석 및 동적 분석의 정적 결과(228) 및 동적 결과(230) 둘 모두를 각각 평가한다. 회귀 모델 및 온라인 예측 엔진의 사용을 포함하여, 온라인 예측 엔진(226)이 이러한 리스크 스코어(232)를 어떻게 결정하는지에 대한 세부사항들이 아래에서 설명되고 도 5에 예시된다.
[0096] 이러한 설명을 목적으로, 온라인 예측 엔진(226)은 리스크 스코어(232)를 샌드박스 엔진의 통계적 분석 유닛(208)에 전달한다. 통계적 분석 유닛(208)은 글로벌 통계의 데이터베이스(214)를 포함하며, 그에 대해 온라인 예측 엔진(226)으로부터의 리스크 스코어(232)가 유사한 디지털 자산들(220)과 비교된다. 일단 디지털 자산들의 상태(standing)가 유사한 디지털 자산들(220)의 집단 내의 각각의 디지털 자산의 취약점들과 관련하여 사정되었다면, 샌드박스 엔진의 감사 보고서 생성 유닛(218)은 통계적 분석 유닛(208)의 통계적 취약점 데이터(236)에 기반하여 결과들을 생성한다. 아래의 도 10은 감사 보고서 생성 유닛의 추가 세부사항들 및 예시들을 설명한다.
샌드박스 엔진
[0097] 샌드박스 엔진은 기업 머신 러닝 실습을 시작하는 데 필요한 개발 하드웨어, 소프트웨어, 데이터, 툴들, 인터페이스들, 및 정책들을 포함할 수 있다. 샌드박스는 프로그램들 또는 파일들이 작동되는 애플리케이션, 시스템 또는 플랫폼에 영향을 주지 않고 사용자들이 프로그램들을 작동시키거나 파일들을 실행할 수 있게 하는 격리된 테스팅 환경을 포함한다. 소프트웨어 개발자들은 샌드박스들을 사용하여 새로운 프로그래밍 코드를 테스트한다. 사이버 보안 전문가들은 샌드박스들을 사용하여 잠재적으로 악성(malicious) 소프트웨어를 테스트한다. 샌드박스는 또한 코드가 작동되고 있는 디바이스, 네트워크 또는 다른 연결된 디바이스들에 해를 입히는 것을 방지하도록 악성 코드를 안전하게 실행하는 데 사용될 수 있다. 멀웨어를 검출하기 위해 샌드박스를 사용하는 것은 보안 위협들, 이를테면 제로-데이(zero-day) 취약점들을 사용하는 은밀한 공격들 및 익스플로이트(exploit)들에 대한 추가적인 보호 층을 제공한다. 예시적인 샌드박스 애플리케이션들은 실행가능 코드를 포함하는 PDF들 및 다른 문서들을 포함하므로, Adobe Reader와 같은 애플리케이션은 샌드박스에서 PDF 파일들을 작동시키며, 샌드박스는 이들이 PDF 뷰어를 벗어나 컴퓨터의 나머지를 방해하는 것을 중지시킨다. Microsoft Office는 또한, 안전하지 않은 매크로들이 시스템을 변조하는 것을 중지시키기 위해 샌드박스 모드를 갖는다.
스마트 계약
[0098] 스마트 계약은 계약의 협상 또는 수행을 디지털 방식으로 용이하게 하거나, 검증하거나 또는 시행하고 제3자들 없이 신뢰가능한 트랜잭션들의 수행을 허용하도록 의도된 컴퓨터 프로토콜을 포함할 수 있다. 스마트 계약들은, 합의된 조건들에 따라, 사용자들 사이의 암호-토큰(crypto-token)들의 중단없는(uninterruptable) 이전을 자동화하기 위해 사용될 수 있다. 스마트 계약은, 소스 코드를 생성할 수 있는 컴퓨터 텍스트 편집기에서 생성될 수 있고, 블록체인 기술과 일치하는 모든 언어, 예컨대 솔리디티, 골랭(golang), 자바, 자바스크립트, C++, SQL로 작성될 수 있다.
기호 실행
[0099] 기호 실행은 테스트 데이터의 생성을 돕고 프로그램 품질을 입증하는 데 유용한 소프트웨어 테스팅 기법을 포함할 수 있다. 소프트웨어 테스팅의 이러한 맥락에서 기호 실행의 목표는, 주어진 시간량 내에서 가능한 한 많은 상이한 프로그램 경로 조건들을 탐색하고, 각각의 경로가 그 경로를 사용하는 구체적인 입력 값들의 세트를 생성하는 것 및 보안 취약점들을 포함하는 다양한 종류들의 에러들의 존재에 대해 체크하는 것 둘 모두를 행하는 것이다. 기호 실행 이면의 하나의 아이디어는, 구체적인 데이터 값들 대신에 기호 값들을 입력으로서 사용하고 프로그램 변수들의 값들을 기호 입력 값들에 대한 기호 표현들로서 나타내는 것이다. 그 결과, 프로그램에 의해 계산된 출력 값들은 기호 입력 값들의 함수로서 표현된다. 소프트웨어 테스팅에서, 프로그램의 각각의 실행 경로에 대한 테스트 입력을 생성하기 위해 기호 실행이 사용된다. 구체적인 테스트 입력들을 생성하는 능력은 기호 실행의 주요 장점들 중 하나이며: 테스트 생성 관점에서, 이는 고 커버리지 테스트 스위트(high-coverage test suite)들의 생성을 허용할 수 있는 한편, 취약점 관점에서, 이는 개발자들에게, 에러를 생성한 기호 실행 툴과 독립적으로 에러를 확인 및 디버그하는 데 사용될 수 있는, 버그를 트리거하는 구체적인 입력을 제공할 수 있다.
재진입
[0100] 재진입은 메모리 내의 동일한 사본이 다수의 사용자들에 의해 공유될 수 있도록 작성된 컴퓨터 프로그램 또는 루틴을 기술한다. 재진입 코드는 일반적으로, 다중-사용 시스템들에서 공유되도록 의도된 운영 시스템들 및 애플리케이션들에서 요구된다. 코드 구조 내에서, 재진입 함수는 데이터 손상(data corruption)의 우려 없이 하나 초과의 태스크에 의해 동시에 사용될 수 있으며, 가장 중요하게는, 데이터의 손실 없이 언제든지 중단되고 나중에 재개될 수 있다. 재진입 함수들은 로컬 변수들을 사용하거나, 또는 글로벌 변수들이 사용될 때 이들의 데이터를 보호한다.
퍼즈 테스팅
[0101] 퍼징, 퍼징 테스팅, 또는 퍼즈 테스팅은 유효하지 않거나, 예상치 못한, 또는 랜덤한 데이터를 컴퓨터 프로그램에 대한 입력들로서 제공하는 자동화된 소프트웨어 테스팅 기법을 포함한다. 그러면 프로그램은 예외들, 이를테면 충돌(crash)들, 빌트-인 코드 어서션들의 실패, 또는 잠재적인 메모리 누수(memory leak)들에 대해 모니터링된다. 잘못된 형식의 입력들은 퍼즈 테스팅에 대한 공통 입력을 포함한다.
잘못된 형식의 입력들
[0102] 위에서 언급된 바와 같이, 잘못된 형식의 입력들은 알려진 동적 패턴들을 제공하기 위해 퍼즈 테스팅에 배치될 수 있다. 오류-유발(failure-inducing) 입력이 크고 대부분 잘못된 형식인 경우, 개발자는 테스팅 실패의 원인을 이해하는 데 어려움을 겪을 수 있다. 오류-유발 입력이 주어지면, 원래의 에러를 계속 재생산하면서 가능한 한 많은 입력 바이트들을 제거하기 위해 자동화된 최소화 툴이 배포될 수 있다.
키-값 쌍들
[0103] 키-값 쌍들은 2개의 링크된 데이터 아이템들의 세트를 표시한다: 일부 데이터 아이템에 대한 고유 식별자인 키, 및 식별된 데이터 또는 그 데이터의 위치에 대한 포인터인 값인 값. 키-값 쌍들은 룩업 테이블들, 해시 테이블들 및 구성 파일들에서 빈번하게 사용된다.
[0104] 도 3을 참조하면, 일 실시예에 따른 가상 머신(300)에서의 동적 실행이 예시된다. 위에서 언급된 바와 같이, 동적 실행은 샌드박스 엔진의 동적 분석 유닛 내에서 발생하는데, 즉, 디지털 자산 소스 코드를 수신하고, 소스 코드를 컴파일링된 코드(일명, 바이트코드(308))로 컴파일하고, 그리고 컴파일된 코드를 가상 머신 보안 환경 내에서 실행한다. 실행은 취약점 지식 베이스에 기반하여 바이트코드 제어 흐름 그래프를 동적으로 실행하는 것을 포함한다. 가상 머신에서 실행될 때, 컴파일된 스마트 계약 바이트코드(308) 명령들은 코드, 저장소, 잔액 등과 함께 블록체인에 기록된다.
[0105] 샌드박스 엔진의 동적 분석 유닛에서의 스마트 계약 취약점들의 검출은, 도 3에 도시되고 지식 베이스 엔진(122)에 기록된 동적 제어 흐름 그래프에서 패턴들을 검출하는 것을 포함한다. 흐름은 가상 머신에서의 스마트 계약 컴파일된 바이트코드(308)의 동적 실행, 및 알려진 취약점 패턴들에 대해 지식 베이스 엔진(122)에 대한 저장소, 메모리 및 함수 호출(call) 체크를 위한 샌드박스 엔진의 동적 분석 유닛에 의한 모니터링을 나타낸다. 예시적인 바이트코드(308) 명령들의 세트(예컨대, 대응하는 메모리 위치들을 갖는 함수들 및 위치들)는 계약 B(304)로의 대응하는 호출들을 갖는 계약 A(302)를 포함한다. (예컨대, 저장소, 메모리 또는 다른 계산 함수에 대한) 각각의 호출(312)에 직면할 때, 실행을 위한 경로 조건(310)이 호출(312)이 실행되기 전에 획득된다. 그런 다음, 경로 조건(310)이 유효한 상태로 유지되는지, 즉, 호출(312)이 업데이트된 저장 값들(306)을 이용하여 다시 실행될 수 있는지를 결정하기 위해, 경로 조건(310)은 업데이트된 저장 값들(306)을 이용하여 체크된다. 참(true)이면, 호출(312) 수신자가 호출(312)을 종료하기 전에 재실행할 수 있기 때문에, 취약점이 플래그된다.
경로 조건
[0106] 경로 조건은 컴파일된 코드를 실행하기 위한 환경에서 컴퓨터에 의해 해석되는 바이트코드(308) 커맨드들의 시퀀스를 포함한다. 동적 실행의 맥락에서, 예컨대, 스마트 계약에서의 각각의 호출(312)에 대한 모니터링에서, 호출(312)을 직면하는 것은 호출(312) 자체가 실행되기 전에 실행가능 경로 조건(310)의 검색(retrieval)을 트리거하여, 업데이트된 저장 값들(306)을 갖는 동일한 경로 조건이 여전히 유지되는지(즉, 호출이 다시 실행될 수 있는지)를 체크한다.
[0107] 도 4를 참조하면, 실시예에 따른 머신 러닝(400)이 예시된다. 이전에 설명된 바와 같이, 샌드박스 엔진(402)은 예컨대, 금융 기관으로부터 디지털 자산들의 형태로 암호자산 스마트 계약들을 수락한다. 도시된 바와 같이, 스마트 계약 암호자산들은 정의에 의해 적법한 디지털 자산들 또는 취약한 디지털 자산들일 수 있는바, 즉, 이들은 반드시 둘 중 하나이다. 따라서, 각각의 디지털 자산 타입은 샌드박스 엔진(402) 입력: 적법한 스마트 계약 암호자산(410) 또는 취약한 스마트 계약 암호자산(412)을 기술한다. 알려진 암호자산 데이터베이스에 대해 적법한 스마트 계약 암호자산(410)을 검증하고 지식 베이스 엔진(122)에 대해 취약한 스마트 계약 암호자산(412)을 검증함으로써, 두 데이터 세트들 모두는 새로운 취약점 거동 패턴들 및 위협 지능에 대해 끊임없이 학습하고, 샌드박스 엔진(402)은 알려진 적법한 디지털 자산들(406) 및 알려진 취약한 디지털 자산들(408) 둘 모두를 검증하고 출력한다.
[0108] 일 실시예에서, 특징 벡터들은 알려진 적법한 디지털 자산들(406) 및 알려진 취약한 디지털 자산들(408) 둘 모두에 대해 머신 러닝 모델 트레이닝(404)에 대한 입력들로서 만들어질 수 있다. 특징 벡터들은, 다수의 수치 요소들, 예컨대, 텍스트 용어들, 이를테면 함수들 및 변수들의 발생 빈도를 포함하는 스마트 계약의 임의의 양상을 포함할 수 있고, 집합적으로 취해져 머신 러닝 모델 트레이닝(404)을 위한 제공된 트레이닝 데이터로서 역할을 할 수 있다.
[0109] 머신 러닝 모델 트레이닝(404)은, 알려진 적법한 디지털 자산들(406) 및 알려진 취약한 디지털 자산들(408)로부터 제공된 트레이닝 데이터 또는 전술된 특징 벡터들을 수집하는 것, 및 머신 러닝 알고리즘의 입력들을 추정하기 위해 오프라인 트레이닝 엔진을 트레이닝시키기 위해 아래에서 논의되고 도 15에 예시된 바와 같이 뉴럴 네트워크를 사용하는 것을 포함한다.
머신 러닝 알고리즘
[0110] 스마트 계약들을 디지털 자산들로서 평가하는 맥락에서, 머신 러닝 알고리즘(420)은 오프-라인 트레이닝 엔진일 수 있는데, 즉, 모델 입력들로서 특징 벡터들을 수집하고 회귀 모델(414)을 적용하여 시간에 따라 그 결과들을 개선시키는 능력을 갖고 회귀 모델의 모든 파라미터들을 추정하는 능력을 갖는다. 수치 특징들의 세트를 포함하는 입력들은 특징 벡터에 의해 편리하게 설명될 수 있다. 이러한 맥락에서, 알려진 적법한 디지털 자산들(406) 및 알려진 취약한 디지털 자산들(408) 둘 모두는 자산들의 각각의 세트를 나타내는 수치 특징들의 n-차원 벡터인 특징 벡터에 의해 설명될 수 있다. 머신 러닝에서의 많은 알고리즘들은 객체들의 수치 표현을 요구하는데, 왜냐하면 그러한 표현들은 프로세싱 및 통계적 분석을 용이하게 하기 때문이다. 특징 벡터로부터 양방향 분류(two-way classification)에 도달하는 예는, 특징 벡터와 가중치들의 벡터 사이의 스칼라 곱을 계산하는 것, 결과를 임계치와 비교하는 것, 및 비교에 기반하여 클래스를 결정하는 것을 포함한다. 특징 벡터로부터의 분류를 위한 알고리즘들은 최근접 이웃 분류, 뉴럴 네트워크들, 및 베이지안(Bayesian) 접근법들과 같은 통계적 기법들을 포함한다. 아래에서 설명되고 도 15에 예시된 바와 같이, 뉴럴 네트워크는 명명된 특징 벡터들로부터의 분류를 위한 머신 러닝 알고리즘(420)에 활용된다.
회귀 모델
[0111] 회귀 모델(414)은 알고리즘들 및 분석을 포함한다. 회귀 분석은 변수들 사이의 관계들을 추정하기 위한 통계 프로세스들의 세트이다. 이는, 초점이 종속 변수와 하나 이상의 독립 변수들 사이의 관계에 있을 때, 몇몇 변수들을 모델링하고 분석하기 위한 많은 기법들을 포함한다. 더 구체적으로, 회귀 분석은, 독립 변수들 중 임의의 하나가 변동되는 반면, 다른 독립 변수들은 고정된 채로 유지될 때, 종속 변수의 통상적인 값이 어떻게 변하는지를 이해하는 것을 돕는다. 회귀 분석은 부가적으로, 독립 변수들이 주어지면 종속 변수의 조건부 기대치, 즉, 독립 변수들이 고정될 때의 종속 변수의 평균 값을 추정한다.
[0112] 회귀 알고리즘들은 이들의 연속적인 출력들로 인해 명명되는데, 이는 이들이, 이 경우에는 머신 러닝 모델 트레이닝(404) 내에서 머신 러닝 알고리즘으로부터, 범위 내의 임의의 값을 가질 수 있음을 의미한다. 이 경우, 회귀 모델은 함수, 즉, f(X)의 형태를 취하는데, f()는 회귀 모델이고, X는 각각 제공된 트레이닝 데이터(416) 및 제공된 트레이닝 데이터(418)로서 역할하는, 알려진 적법한 디지털 자산들(406) 또는 알려진 취약한 디지털 자산들(408)로부터의 입력 특징 벡터들이다. 회귀 모델은 선형 또는 비-선형일 수 있다.
[0113] 도 5를 참조하면, 실시예에 따른 리스크 스코어링 엔진(500)이 예시된다. 이전에 설명된 바와 같이, 샌드박스 엔진(502)은 예컨대, 금융 기관으로부터 디지털 자산들의 형태로 스마트 계약 암호자산(506)을 수락한다. 도시된 바와 같이, 스마트 계약 암호자산(506)은 적법한 디지털 자산 또는 취약한 디지털 자산일 수 있다. 따라서, 이러한 디지털 자산 타입들 중 어느 하나가 샌드박스 엔진(502) 입력으로서 디스플레이된다. 알려진 암호자산 데이터베이스에 대해 적법한 디지털 자산을 검증하고 지식 베이스 엔진(122)에 대해 취약한 디지털 자산을 검증함으로써, 두 데이터 세트들 모두가 새로운 취약점 행동 패턴들 및 위협 지능에 대해 끊임없이 학습하며, 샌드박스 엔진(502)은 자신의 샌드박스 엔진 결과들(514)을, 알려진 취약점들(516), 알려진 적법한 디지털 자산들(518), 및/또는 알려진 취약한 디지털 자산들(520) 중 하나 이상인 디지털 자산들의 적어도 하나의 데이터베이스(512)에 업로드한다. 위에서 언급된 바와 같이, 알려진 적법한 디지털 자산들(518) 및 알려진 취약한 디지털 자산들(520) 둘 모두로부터의 특징 벡터들을 사용하는 오프라인 트레이닝 엔진(522)은 설명된 바와 같이 회귀 모델(508)을 사용하여 머신 러닝 알고리즘(524)의 파라미터들을 추정한다.
[0114] 리스크 스코어링 엔진(504)은 특정 스마트 계약에 대한 스코어(510)를 예측하기 위해, 오프라인 프로세스에서 트레이닝된 회귀 모델(508)을 사용하는 온라인 트레이닝을 포함한다. 이로써, 리스크 스코어링 엔진(504)은 회귀 모델(508), 오프라인 트레이닝 엔진(522), 및 알려진 취약점들(516), 알려진 적법한 디지털 자산들(518) 및 알려진 취약한 디지털 자산들(520)로 구성된 디지털 자산들(512)의 적어도 하나의 데이터베이스에 대한 액세스를 포함한다.
[0115] 리스크 스코어링 엔진(504)으로부터 스코어(510)를 생성하기 위해, 품질 스케일(0-100)은 100이 최고 품질 스마트 계약이고 0(제로)이 가장 취약한 것으로 정의될 수 있다. 알려진 적법한 디지털 자산들(518)(100의 스코어) 및 알려진 취약한 디지털 자산들(520)(0의 스코어)을 포함하는 디지털 자산들(512)의 적어도 하나의 데이터베이스를 이용하여, 회귀 모델(508)은 0 내지 100의 스코어를 보간함으로써 트레이닝될 수 있다. 선형 회귀 모델(508)의 수학은 또한 비선형 회귀 모델에 적용될 수 있다. 함수 Yi = a + b1 * Xsi + b2 * Xdi는 출력 품질 스코어인 Yi를 계산하는 데 사용되며, Xs는 정적 분석의 출력(예컨대, 사용되지 않는 신택스 결과들)을 나타내고, Xd는 동적 분석의 출력(예컨대, 재진입 취약점 식별)을 나타내고, a, b1 및 b2는 데이터세트로부터 학습된 회귀 모델의 모델 파라미터들이다. Y, Xs 및 Xd에 대한 카운터 "i"는 트레이닝 데이터세트에서 "i-번째" 데이터 포인트를 나타내며, i는 1 내지 n의 범위이다. 파라미터들 a, b1, 및 b2는 다음의 선형 최소화 알고리즘을 사용하여 계산될 수 있다:
Figure pct00001
수학식 1
[0116] 도 6을 참조하면, 디지털 자산 트레이딩 거래소(600)가 예시된다. 금융 기관들의 암호자산들을 적어도 부분적으로 식별, 보호, 검출, 대응 및 복구하기 위해 보안 제어 시스템이 존재한다. 예시적인 기관들은 암호화폐 거래소(Crypto Exchange), 암호화폐 헤지펀드(Crypto Hedge Fund), 암호화폐 커스터디(Crypto Custody) 등일 수 있다. 보안 제어 시스템은 암호자산 트레이딩 거래소에서 사용자가 주문한 트레이드 주문에 의해 트리거되는 취약한 암호자산에 대한 트레이딩을 자동으로 중단할 수 있다. 디지털 자산이 샌드박스에 의해 취약한 것으로 결정되면, 그 디지털 자산만 트레이딩이 중단되는데, 예컨대, 다른 적법한 디지털 자산들은 계속해서 기능한다.
[0117] 보안 제어 시스템의 실시예들은, 디지털 자산들을 식별하고, 취약점들에 대해 디지털 자산들을 스캔하고, 그리고 그러한 디지털 자산들을 취약한 디지털 자산들로서 식별하기 위한, 아래에서 설명되는 바와 같은 로직을 포함한다. 로직은 취약한 디지털 자산들의 트레이딩을 중단하고 디지털 자산 트레이딩 거래소(600)에서의 트레이드에 응답하는 능력을 포함하여, 디지털 자산들을 추가로 보호할 수 있다. 트레이드는 취약한 디지털 자산들 및 적법한 디지털 자산들을 포함할 수 있으며, 취약한 디지털 자산들은 중단되고 적법한 디지털 자산들은 진행되도록 허용된다.
[0118] 실시예에서, 로직은 블록 시작(602)에서 시작한다. 블록(604)에서, 사용자는 디지털 자산 트레이딩 거래소에서 자산_A의 트레이드 주문을 한다. 블록(606)에서, 로직은 샌드박스 보안 제어기에 쿼리(query)하여, 결정 블록(608)에서 주문을 분석하고 자산_A가 취약한지 여부를 결정한다. 자산_A가 취약한 것으로 밝혀지면, 이는 취약한 디지털 자산들의 세트(630)에 합류하고, 조치(628)가 취해진다. 자산_A는 이제 식별된 취약한 자산(610)이고, 블록(612)에서, 자산_A는 트레이딩이 중단된다. 블록(614)에서, 자산_A가 트레이딩 쌍들(626)(예컨대, 자산_A의 경우, USD/비트코인)로부터 제거된다. 블록(616)에서, 운영 팀은 교정(remediate)하도록 통지되고, 로직은 완료 블록(622)에서 종료된다.
[0119] 결정 블록(608)으로 돌아가서, 자산_A가 취약하지 않은 것으로 결정되면(예컨대, 그것이 적법한 것이고 적법한 디지털 자산들의 세트(624)의 일부임), 블록(618)에서 트레이딩이 완료되고, 자산_A는 완료 블록(622)에서 완료되기 전에 블록(620)에서 블록체인 상에 정착(settle)된다.
[0120] 도 7을 참조하면, 예방적 스캐닝(700) 프로세스가 설명된다. 위의 도 6의 디지털 자산 트레이딩 거래소(600) 설명의 로직과 유사한 방식으로, 예방적 스캐닝(700)은 보안 제어 시스템의 다른 모드를 나타낸다. 이 실시예에서, 보안 제어 시스템은 취약점들에 대해 트레이딩 쌍들(718) 내의 모든 디지털 자산들을 지속적으로 스캔한다. 일단 발견되면, 디지털 자산은 트레이딩 쌍들(718)로부터 제거되는 반면, 다른 것들은 계속해서 정상적으로 기능한다.
[0121] 디지털 자산들을 예방적으로 스캔하기 위한 로직은 시작(702)에서 시작된다. 결정 블록(704)에서, 스캐닝 프로세스가 참(예컨대, 액티브)이면, 블록(706)에서 트레이딩 쌍들(718) 내의 자산(X)에 대해, 블록(708)에서 샌드박스 보안 제어 시스템이 쿼리된다. 결정 블록(710)에서 자산(X)이 취약하지 않은 것으로 결정되면, 로직은 다음 트레이딩 쌍을 체크하기 위해 리턴한다. 결정 블록(710)에서 자산(X)이 취약하다면, 이는 블록(712)에서 트레이딩 쌍들(718)로부터 예방적으로 제거되고, 블록(714)에서 운영팀은 자산을 교정하도록 통지받는다. 이 시점에서, 로직은 완료 블록(716)에서 완료된다.
[0122] 도 8을 참조하면, 예시적인 스마트 계약(800)이 예시된다. 이 예에서, 스마트 계약 프로그램 언어(802)의 신택스는 코드의 첫 번째 라인에서 솔리디티로서 식별된다. 이 스마트 계약의 다른 주목할만한 특징들은 스마트 계약 명칭(804)("ANChainAiVulnerableCryptoAsset") 및 스마트 계약 코드의 바디(806)를 포함한다.
[0123] 도 9를 참조하면, 위에서 설명된 보호 특징들을 사용할 수 있는 방향성 비순환 그래프(900)가 도시된다. DAG(directed acyclic graph)(900)는 방향성 사이클들을 갖지 않는, 즉, 각각의 에지가 하나의 노드로부터 다른 노드로 지향되는 유한하게 많은 노드들(902) 및 에지들(904)로 구성된, 유한 방향성 그래프이며, 따라서 임의의 노드에서 시작하여 궁극적으로 초기 노드로 다시 루프백하는 일관되게-지향된 에지들의 시퀀스를 따를 방법이 없다. 동등하게, 방향성 비순환 그래프(900)는 토폴로지 순서, 즉 모든 에지가 시퀀스에서 이전 것으로부터 나중의 것으로 지향되도록 하는 노드들의 시퀀스를 갖는 방향성 그래프이다.
[0124] 방향성 비순환 그래프의 토폴로지 순서: 모든 에지는 순서상 이전 것(상부 좌측)으로부터 순서상 나중의 것(하부 우측)으로 간다. 방향성 그래프는, 그것이 토폴로지 순서를 가지면 그리고 그 경우에만(if and only if), 비순환적인 것으로 정의된다.
[0125] 도 10을 참조하면, 예시적인 감사 보고서(1000)가 예시된다. 위에서 설명되고 도 2에 예시된 바와 같이, 리스크 스코어는 샌드박스 엔진의 통계적 분석 유닛에 대한 입력으로서 역할을 한다. 완전히 자동화된 샌드박스 엔진을 이용하여, 모든 스마트 계약들의 품질 스코어들이 대규모로 계산될 수 있는 한편, 개별 자산의 취약점이 또한 격리될 수 있다. 히트맵 데이터(1010)로부터 도출된 히트맵(1006)과 같은 시각화는 전체 디지털 자산 집단에서 암호자산의 상태를 이해하는 것을 돕는다. 일 실시예에서, 히트맵(1006)은 코드 라인들 대 리스크 스코어의 통계적 랭킹을 예시하며, 각각의 셀은 유사한 스마트 계약들의 클러스터를 표시한다. 상태(1008)는 범위(scope) 내의 현재 스마트 계약 암호자산을 표시하고, 코드 라인(1002)은 취약점 위치를 표시한다. 샌드박스 거동들에 대한 표준 클러스터링 알고리즘을 사용함으로써, 가장 유사한 스마트 계약들이 식별될 수 있다.
[0126] 도시된 바와 같이, 취약점 감사 보고서는 자동으로 생성될 수 있고, 이러한 경우에, 리스크/컴플라이언스/운영 팀은 즉시 통지받을 수 있으며, 예컨대 감사 보고서(1000)에서, 표시된 암호자산은 (100점 만점에서) 0의 점수를 가져서, 심각한 레벨(1004)의 취약점을 표시한다. 히트맵(1006)에 시각화된 모든 50,000개의 스마트 계약들 중에서 이러한 통계적 상태는 최악의 스마트 계약들 중 하나임을 표시한다.
[0127] 도 11을 참조하면, 블록(1102)에서, 디지털 자산들을 보호하는 방법(1100)은 샌드박스 엔진을 사용하여 취약점들에 대해 디지털 자산들을 스캔한다. 블록(1104)에서, 방법(1100)은 인공 지능을 포함하는 지식 베이스 엔진을 사용하여 새로운 취약점들 및 위협 지능에 관련된 정보를 획득한다. 블록(1106)에서, 방법(1100)은 샌드박스 엔진 결과들을 분석하고 머신 러닝을 포함하는 리스크 스코어링 엔진을 사용하여 각각의 취약한 자산에 리스크 스코어를 할당한다. 블록(1108)에서, 방법(1100)은 보안 제어 시스템을 사용하여 식별된 취약한 자산에 할당된 리스크 스코어에 기반하여 식별된 취약한 자산에 대해 조치를 취한다.
[0128] 도 12를 참조하면, 블록체인 트랜잭션 프로세스(1200)는 계속 증가하는 데이터 블록들의 세트이다. 각각의 블록은 트랜잭션들의 집합을 기록한다. 블록체인들은 이러한 트랜잭션들을 컴퓨터들의 그룹에 걸쳐 분산시킨다. 각각의 컴퓨터는 블록체인 트랜잭션들의 자체 사본을 유지한다.
[0129] 블록체인은 암호기법을 사용하여 링크되고 보안되는, 블록들로 지칭되는 지속적으로 증가하는 레코드들의 목록이다. 각각의 블록은 통상적으로 이전 블록의 암호화 해시(cryptographic hash), 타임스탬프, 및 트랜잭션 데이터를 포함한다. 설계에 의해, 블록체인은 데이터의 수정에 저항한다. 블록체인들은 두 당사자들 사이의 트랜잭션들을 효율적으로 그리고 검증가능하고 영구적인 방식으로 기록할 수 있는 개방형 분산 장부를 구현할 수 있다.
[0130] 블록체인은 통상적으로, 노드-간 통신을 위한 프로토콜을 준수하고 새로운 블록들을 검증하는 다수의 당사자들에 의해 집합적으로 관리된다. 일단 기록되면, 임의의 주어진 블록의 데이터는 모든 후속 블록들의 변경 없이는 소급하여 변경될 수 없으며, 이는 운영자들 간의 컨센서스(consensus)를 요구한다.
[0131] 트랜잭션들을 기록할 때, 데이터를 비밀로 유지하고 아이덴티티를 입증하는 수학적 방법들을 수반하는 암호기법이 활용된다. 하나의 디지털 키는 예컨대 트랜잭션 요청 디바이스(1202) 상의 소유자만이 자신들의 자산들을 수반하는 블록체인에 트랜잭션을 입력할 수 있음을 보장하고, 다른 디지털 키는 다른 당사자들로 하여금 트랜잭션을 추가한 이가 실제로 소유자였음을 확인하게 한다.
[0132] 블록체인은 해시라고 지칭되는 암호화 기법을 활용하여 변조 또는 기타 변경들에 저항한다. 해싱은 데이터를 외견상 랜덤한 문자들의 시퀀스로 감소시키는데, 예컨대, 어구 "the quick brown fox"의 해시는 SHA-256으로 지칭되는 해시 방법을 사용하여 "9ECB36561341D18EB65484E833EFEA61EDC74B84CF5E6AE1B81C63533E25FC8F"이다. 어구에서 단 하나의 글자를 수정하는 것은 완전히 상이한 해시를 생성하며, 해시로부터 원래의 데이터를 알아내기 위해 뒤로 돌아갈 수 없다.
[0133] 블록체인을 이용하면, 해시들이 함께 링크되므로 임의의 미세한 변화는, 그것을 수용한 블록뿐만 아니라 나중에 추가된 모든 다른 블록들에서도, 즉시 보인다. 그 작은 변화들에 대해 그렇게 큰 위험 신호(red flag)들을 이용하면, 감사는 더 쉬워진다.
[0134] 도 13은 예시적인 블록체인 포메이션(1300)을 예시한다. 메인체인(1302)(M개의 블록들)은 시작 블록(1306)(S 블록)으로부터 현재 블록까지의 가장 긴 일련의 블록들을 포함한다. 고립 블록들(1304)(O 블록들)은 메인 체인 외부에 존재한다.
[0135] 블록들은, 예컨대 머클 트리(Merkle tree)에 해싱 및 인코딩되는 유효 트랜잭션들의 배치(batch)들을 보유한다. 각각의 블록은 블록체인 포메이션(1300)에서 이전 블록의 암호화 해시를 포함하여, 이 둘을 링크시킨다. 링크된 블록들은 체인을 형성한다. 이러한 반복 프로세스는, 원래의 시작 블록(1306)까지 거슬러 올라가, 이전 블록의 무결성을 확인한다.
[0136] 때때로, 별개의 블록들이 동시에 생성되어, 임시 포크를 생성할 수 있다. 보안 해시-기반 이력에 부가하여, 블록체인 포메이션(1300)은 더 높은 값을 갖는 것이 다른 것들보다 선택될 수 있도록 상이한 버전들의 이력을 스코어링하기 위한 특정된 알고리즘을 갖는다. 메인체인(1302)에 포함되도록 선택되지 않은 블록들은 고립 블록들(1304)로 지칭된다. 블록체인 포메이션(1300)을 지원하는 피어들은 때때로 상이한 버전들의 이력을 갖는다. 이들은 이들에게 알려진 블록체인 포메이션(1300)의 최고-스코어 버전만을 유지한다. 피어가 더 높은-스코어링 버전(일반적으로 단일의 신규 블록이 추가된 구 버전)을 수신할 때마다, 이들은 블록체인 포메이션(1300)의 자신들의 로컬 버전을 확장하거나 덮어쓰고, 개선 사항을 자신들의 피어들에 재송신한다. 임의의 특정 엔트리가 역사상 최상의 버전으로 영구적으로 유지될 것이라는 절대적인 보장은 결코 없다. 블록체인들은 통상적으로 오래된 블록들에 새로운 블록들의 스코어를 추가하도록 구축되기 때문에, 그리고 오래된 블록들을 덮어쓰기보다는 새로운 블록들로 확장하는 것에 대해서만 작업하는 데 인센티브들이 존재하기 때문에, 엔트리가 대체될 확률은 더 많은 블록들이 그 위에 구축됨에 따라 기하급수적으로 감소하고, 결국 매우 낮아지게 된다. 예컨대, 작업 증명(proof-of-work) 시스템을 사용하는 블록체인에서, 가장 누적된(cumulative) 작업 증명을 갖는 체인은 네트워크에 의해 항상 유효한 것으로 간주된다. 충분한 레벨의 계산을 증명하는 데 사용될 수 있는 다수의 방법들이 있다. 블록체인 내에서, 계산은 종래의 분리 및 병렬 방식으로라기 보다는 중복적으로 수행된다.
[0137] 도 14는 되돌릴 수 없는 트랜잭션 블록체인(1400)의 실시예를 예시한다. 블록체인(1400)은 디지털방식으로 서명된(signed) 트랜잭션들(트랜잭션 1(1402), 트랜잭션 2(1404), 및 트랜잭션 3(1410) 등)의 시퀀스이다. 각각의 트랜잭션은 현재 소유자들의 퍼블릭 키(각각, 블록 1 소유자 퍼블릭 키(1406), 블록 2 소유자 퍼블릭 키(1412), 및 블록 3 소유자 퍼블릭 키(1416)), 및 해시 함수를 사용하여 생성된 이전 소유자의 서명(O(0) 서명(1408), O(1) 서명(1414), 및 O(2) 서명(1418))을 포함한다. 트랜잭션의 소유자는 소유권 체인을 검증하기 위해 각각의 이전 트랜잭션을 조사할 수 있다. 종래의 수표 배서들과 달리, 블록체인(1400)에서의 트랜잭션들은 되돌릴 수 없으며, 이는 사기(fraud)를 완화시킨다.
[0138] 일부 구성들에서, 머신 러닝 알고리즘은 딥 러닝(deep learning) 뉴럴 네트워크로서 구현될 수 있다. 도 15는 생물학적 뇌의 뉴런들을 느슨하게 모델링하는 인공 뉴런들로 지칭되는 연결된 유닛들 또는 노드들의 집합에 기반하는 기본 딥 뉴럴 네트워크(1500)를 예시한다. 각각의 연결은, 생물학적 뇌의 시냅스들과 같이, 하나의 인공 뉴런으로부터 다른 인공 뉴런으로 신호를 송신할 수 있다. 신호를 수신하는 인공 뉴런은 이를 프로세싱하고, 그런 다음 그에 연결된 추가적인 인공 뉴런들에 시그널링할 수 있다.
[0139] 일반적인 구현들에서, 인공 뉴런들 사이의 연결에서의 신호는 실수(real number)이고, 각각의 인공 뉴런의 출력은 그것의 입력들의 합의 일부 비선형 함수(활성화 함수)에 의해 계산된다. 인공 뉴런들 사이의 연결들은 '에지들' 또는 액손(axon)들로 지칭된다. 인공 뉴런들 및 에지들은 통상적으로, 학습이 진행됨에 따라 조정되는 가중치를 갖는다. 가중치는 연결에서 신호의 강도를 증가 또는 감소시킨다. 인공 뉴런들은 임계치(트리거 임계치)를 가질 수 있어서, 집계 신호(aggregate signal)가 그 임계치를 넘는 경우에만 신호가 전송된다. 통상적으로, 인공 뉴런들은 층들로 집계된다. 상이한 층들은 그들의 입력들에 대해 상이한 종류들의 변환들을 수행할 수 있다. 신호들은, 가능하게는 은닉 층들(1504)로 지칭되는 하나 이상의 중간 층들을 순회한 후에, 제1 층(입력 층(1502))으로부터 마지막 층(출력 층(1506))으로 이동한다.
[0140] 도 16을 참조하면, 선행자(predecessor) 뉴런들로부터 입력들을 수신하는 인공 뉴런(1600)은 다음의 컴포넌트들로 이루어진다:
● 입력들 xi;
● 입력들에 적용된 가중치들 wi;
● 학습 함수에 의해 변경되지 않는 한 고정되어 유지되는 선택적 임계치(b); 및
● 이전의 뉴런 입력들 및 임계치가 있다면, 이들부터 출력을 계산하는 활성화 함수(1602).
[0141] 입력 뉴런은 선행자를 갖지 않지만, 전체 네트워크에 대한 입력 인터페이스로서의 역할을 한다. 유사하게, 출력 뉴런은 어떠한 계승자(successor)도 갖지 않으며, 따라서 전체 네트워크의 출력 인터페이스로서 역할을 한다.
[0142] 네트워크는 연결들을 포함하며, 각각의 연결은 하나의 층의 뉴런의 출력을 다음 층의 뉴런의 입력으로 이전한다. 각각의 연결은 입력(x)을 전달하고 가중치(w)를 할당받는다.
[0143] 활성화 함수(1602)는 종종, 선행자 뉴런들의 입력들의 가중된 값들의 곱들의 합의 형태를 갖는다.
[0144] 학습 규칙은, 네트워크에 대한 주어진 입력이 선호되는 출력을 생성하기 위해, 뉴럴 네트워크의 파라미터들을 수정하는 규칙 또는 알고리즘이다. 이러한 학습 프로세스는 통상적으로 네트워크 내의 뉴런들 및 연결들의 가중치들 및 임계치들을 수정하는 것을 수반한다.
[0145] 도 17은 독립형 및/또는 네트워킹된 환경에서 본원에서 설명된 하나 이상의 예시적인 양상들을 구현하는 데 사용될 수 있는 시스템 아키텍처 및 데이터 프로세싱 디바이스의 일 예를 예시한다. 데이터 서버(1710), 웹 서버(1706), 컴퓨터(1704), 및 랩톱(1702)을 포함하는 다양한 네트워크 노드들은 인터넷과 같은 WAN(wide area network)(1708)을 통해 상호연결될 수 있다. 사설 인트라넷들, 기업 네트워크들, LAN들, MAN(metropolitan area network)들, 무선 네트워크들, PAN(personal network)들 등을 포함하는 다른 네트워크들이 또한 또는 대안적으로 사용될 수 있다. 네트워크(1708)는 예시 목적들을 위한 것이며, 더 적거나 부가적인 컴퓨터 네트워크들로 대체될 수 있다. LAN(local area network)은 임의의 알려진 LAN 토폴로지 중 하나 이상을 가질 수 있고, 이더넷과 같은 다양한 상이한 프로토콜들 중 하나 이상을 사용할 수 있다. 데이터 서버(1710), 웹 서버(1706), 컴퓨터(1704), 랩톱(1702), 및 다른 디바이스들(도시되지 않음)을 포함하는 디바이스들은 연선들, 동축 케이블, 광섬유들, 라디오파들 또는 다른 통신 매체들을 통해 네트워크들 중 하나 이상에 연결될 수 있다.
[0146] 본원에서 사용되고 도면들에 도시된 바와 같은 용어 "네트워크"는, 원격 저장 디바이스들이 하나 이상의 통신 경로들을 통해 함께 커플링되는 시스템들뿐만 아니라, 또한 저장 능력을 갖는 그러한 시스템들에 때때로 커플링될 수 있는 독립형 디바이스들을 지칭한다. 결과적으로, 용어 "네트워크"는 "물리적 네트워크"뿐만 아니라, 또한 모든 물리적 네트워크들에 걸쳐 상주하는 - 단일 엔티티에 기인하는 - 데이터로 구성된 "콘텐츠 네트워크"를 포함한다.
[0147] 컴포넌트들은 데이터 서버(1710), 웹 서버(1706), 및 클라이언트 컴퓨터(1704), 랩톱(1702)을 포함할 수 있다. 데이터 서버(1710)는 본원에서 설명되는 하나 이상의 예시적인 양상들을 수행하기 위한 제어 소프트웨어 및 데이터베이스들의 전반적인 액세스, 제어 및 관리를 제공한다. 데이터 서버(1710)는 웹 서버(1706)에 연결될 수 있으며, 그를 통해 사용자들은 요청된 대로 데이터와 상호작용하고 데이터를 획득한다. 대안적으로, 데이터 서버(1710)는 웹 서버 자체로서 작용하고 인터넷에 직접 연결될 수 있다. 데이터 서버(1710)는 네트워크(1708)(예컨대, 인터넷)를 통해, 직접 또는 간접적 연결을 통해, 또는 일부 다른 네트워크를 통해 웹 서버(1706)에 연결될 수 있다. 사용자들은 원격 컴퓨터(1704), 랩톱(1702)을 사용하여, 예컨대 웹 서버(1706)에 의해 호스팅되는 하나 이상의 외부적으로 노출된 웹 사이트들을 통해 데이터 서버(1710)에 연결하기 위해 웹 브라우저를 사용하여, 데이터 서버(1710)와 상호작용할 수 있다. 클라이언트 컴퓨터(1704), 랩톱(1702)은 내부에 저장된 데이터에 액세스하기 위해 데이터 서버(1710)와 협력하여 사용될 수 있거나 다른 목적들을 위해 사용될 수 있다. 예컨대, 클라이언트 컴퓨터(1704)로부터, 사용자는, 당해 기술분야에 알려진 바와 같이, 인터넷 브라우저를 사용하여, 또는 컴퓨터 네트워크(이를테면, 인터넷)를 통해 웹 서버(1706) 및/또는 데이터 서버(1710)와 통신하는 소프트웨어 애플리케이션을 실행함으로써, 웹 서버(1706)에 액세스할 수 있다.
[0148] 서버들 및 애플리케이션들은 동일한 물리적 머신들 상에서 결합될 수 있고, 별개의 가상 또는 논리적 어드레스들을 보유할 수 있거나, 또는 별개의 물리적 머신들 상에 상주할 수 있다. 도 17은 사용될 수 있는 네트워크 아키텍처의 단지 하나의 예를 예시하며, 당업자들은, 본원에서 추가로 설명되는 바와 같이, 특정 네트워크 아키텍처 및 사용되는 데이터 프로세싱 디바이스들은 달라질 수 있고 그들이 제공하는 기능성에 부차적이라는 것을 인식할 것이다. 예를 들어, 웹 서버(1706) 및 데이터 서버(1710)에 의해 제공되는 서비스들은 단일 서버 상에서 결합될 수 있다.
[0149] 데이터 서버(1710), 웹 서버(1706), 컴퓨터(1704), 랩톱(1702)을 포함하는 각각의 컴포넌트는 임의의 타입의 알려진 컴퓨터, 서버, 또는 데이터 프로세싱 디바이스일 수 있다. 데이터 서버(1710)는 예컨대, 데이터 서버(1710)의 전체 동작을 제어하는 프로세서(1712)를 포함할 수 있다. 데이터 서버(1710)는 RAM(1716), ROM(1718), 네트워크 인터페이스(1714), 입력/출력 인터페이스들(1720)(예컨대, 키보드, 마우스, 디스플레이, 프린터 등) 및 메모리(1722)를 더 포함할 수 있다. 입력/출력 인터페이스들(1720)은 데이터 또는 파일들을 판독, 기록, 디스플레이, 및/또는 프린팅하기 위한 다양한 인터페이스 유닛들 및 드라이브들을 포함할 수 있다. 메모리(1722)는 추가로, 데이터 서버(1710)의 전체 동작을 제어하기 위한 운영 시스템 소프트웨어(1724), 본원에서 설명되는 양상들을 수행하도록 데이터 서버(110)에 명령하기 위한 제어 로직(1726), 및 보조, 지원, 및/또는 본원에서 설명되는 양상들과 함께 사용되거나 사용되지 않을 수 있는 다른 기능성을 제공하는 다른 애플리케이션 소프트웨어(1728)를 저장할 수 있다. 제어 로직은 또한 본원에서 데이터 서버 소프트웨어 제어 로직(1726)으로 지칭될 수 있다. 데이터 서버 소프트웨어의 기능성은, 제어 로직에 코딩된 규칙들에 기반하여 자동적으로 이루어진 동작들 또는 결정들, 시스템에 입력을 제공하는 사용자에 의해 수동으로 이루어진 것, 및/또는 사용자 입력(예컨대 쿼리들, 데이터 업데이트들, 등)에 기반한 자동 프로세싱의 조합을 지칭할 수 있다.
[0150] 메모리(1722)는 또한, 제1 데이터베이스(1730) 및 제2 데이터베이스(1732)를 포함하여, 본원에서 설명된 하나 이상의 양상들의 수행에 사용되는 데이터를 저장할 수 있다. 일부 실시예들에서, 제1 데이터베이스는 (예컨대 별개의 테이블, 보고서 등으로서) 제2 데이터베이스를 포함할 수 있다. 즉, 정보는, 시스템 설계에 따라, 단일 데이터베이스에 저장되거나, 또는 상이한 논리적, 가상, 또는 물리적 데이터베이스들로 분리될 수 있다. 웹 서버(1706), 컴퓨터(1704), 랩톱(1702)은 데이터 서버(1710)에 대해 설명된 바와 유사하거나 상이한 아키텍처를 가질 수 있다. 당업자들은, 본원에서 설명된 바와 같은 데이터 서버(1710)(또는 웹 서버(1706), 컴퓨터(1704), 랩톱(1702))의 기능성이 예를 들어, 다수의 컴퓨터들에 걸쳐 프로세싱 로드를 분산시키기 위해, 지리적 위치, 사용자 액세스 레벨, 서비스 품질(QoS) 등에 기반하여 트랜잭션들을 분리하기 위해, 다수의 데이터 프로세싱 디바이스들에 걸쳐 확산될 수 있다는 것을 인식할 것이다.
[0151] 하나 이상의 양상들은, 본원에서 설명된 바와 같이 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 컴퓨터-사용가능 또는 판독가능 데이터 및/또는 컴퓨터-실행가능 명령들에서, 이를테면 하나 이상의 프로그램 모듈들에서 구현될 수 있다. 일반적으로, 프로그램 모듈들은 컴퓨터 또는 다른 디바이스의 프로세서에 의해 실행될 때 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 모듈들은 실행을 위해 후속적으로 컴파일되는 소스 코드 프로그래밍 언어로 작성될 수 있거나, HTML 또는 XML과 같은(그러나 이에 제한되지는 않음) 스크립팅 언어로 작성될 수 있다. 컴퓨터 실행가능 명령들은 비휘발성 저장 디바이스와 같은 컴퓨터 판독가능 매체 상에 저장될 수 있다. 하드 디스크들, CD-ROM들, 광학 저장 디바이스들, 자기 저장 디바이스들, 및/또는 이들의 임의의 조합을 포함하는 임의의 적합한 컴퓨터 판독가능 저장 매체들이 활용될 수 있다. 게다가, 본원에서 설명된 바와 같은 데이터 또는 이벤트들을 표현하는 다양한 송신(비-저장) 매체들은 신호-전도 매체, 이를테면 금속 와이어들, 광섬유들, 및/또는 무선 송신 매체(예컨대, 공기 및/또는 공간)를 통해 이동하는 전자기파들의 형태로 소스와 목적지 사이에서 이전될 수 있다. 본원에서 설명된 다양한 양상들은 방법, 데이터 프로세싱 시스템, 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 다양한 기능성들은 소프트웨어, 펌웨어 및/또는 하드웨어 또는 하드웨어 등가물들, 이를테면 집적 회로들, FPGA(field programmable gate array)들 등으로 전체적으로 또는 부분적으로 구현될 수 있다. 특정 데이터 구조들은 본원에서 설명되는 하나 이상의 양상들을 보다 효과적으로 구현하는 데 사용될 수 있으며, 이러한 데이터 구조들은 본원에서 설명되는 컴퓨터 실행가능 명령들 및 컴퓨터 사용가능 데이터의 범위 내에서 고려된다.
[0152] 용어 "하도록 구성되는"은 "하도록 구성가능한"을 의미하도록 의도되지 않는다. 프로그래밍되지 않은 FPGA는, 예컨대, 일부 특정 기능을 수행하도록 "구성되는" 것으로 간주되지 않을 것이지만, 그것은 프로그래밍 후에 그 기능을 수행하도록 "구성가능"할 수 있다.
[0153] 첨부된 청구항들에서, 구조물이 하나 이상의 작업들을 수행"하도록 구성된다"고 언급하는 것은 그 청구항 요소에 대해 35 U.S.C. §112(f)를 적용하지 않는 것으로 명백히 의도된다. 따라서, [기능을 수행] "하기 위한 수단" 구성을 달리 포함하지 않는 본 출원의 청구항들은 35 U.S.C. §112(f) 하에서 해석되지 않아야 한다.
[0154] 본원에서 사용되는 바와 같이, 용어 "에 기반하는"은 결정에 영향을 미치는 하나 이상의 인자들을 설명하기 위해 사용된다. 이 용어는, 추가적인 인자들이 결정에 영향을 미칠 수 있는 가능성을 배제하지 않는다. 즉, 결정은 특정된 인자들에만 기반하거나 또는 특정된 인자들뿐만 아니라 다른 특정되지 않은 인자들에 기반할 수 있다. 어구 "B에 기반하여 A를 결정한다"를 고려한다. 이 어구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 미치는 인자임을 특정한다. 이 어구는 A의 결정이 또한 C와 같은 일부 다른 인자에 기반할 수 있다는 것을 배제하지 않는다. 이 어구는 또한, A가 B에만 기반하여 결정되는 실시예를 커버하도록 의도된다. 본원에서 사용되는 바와 같이, 어구 "에 기반하는"은 어구 "에 적어도 부분적으로 기반하는"과 동의어이다.
[0155] 본원에서 사용되는 바와 같이, 어구 "에 응답하여"는 효과를 트리거하는 하나 이상의 인자들을 설명한다. 이 어구는 추가적인 인자들이 효과에 영향을 미치거나 달리 트리거할 수 있는 가능성을 배제하지 않는다. 즉, 효과는 오직 그러한 인자들에 대한 응답일 수 있거나, 또는 특정된 인자들뿐만 아니라 다른 특정되지 않은 인자들에 대한 응답일 수 있다. 어구 "B에 대한 응답으로 A를 수행한다"를 고려한다. 이 어구는 B가 A의 수행을 트리거하는 인자임을 특정한다. 이러한 어구는, A를 수행하는 것이 또한, C와 같은 어떤 다른 인자에 대한 응답일 수 있음을 배제하지 않는다. 이 어구는 또한, A가 오직 B에 대한 응답으로 수행되는 실시예를 커버하도록 의도된다.
[0156] 본원에서 사용되는 바와 같이, "제1", "제2" 등의 용어들은 이들이 선행하는 명사들에 대한 라벨들로서 사용되며, 달리 언급되지 않는 한 임의의 타입의 순서화(예컨대, 공간적, 시간적, 논리적 등)를 의미하지 않는다. 예를 들어, 8개의 레지스터들을 갖는 레지스터 파일에서, 용어들 "제1 레지스터" 및 "제2 레지스터"는, 예컨대, 단지 논리 레지스터 0 및 논리 레지스터 1이 아니라, 8개의 레지스터들 중 임의의 2개를 지칭하기 위해 사용될 수 있다.
[0157] 청구항들에서 사용될 때, 용어 "또는"은 배타적 논리합(exclusive or)이 아니라 포함적 논리합(inclusive or)으로서 사용된다. 예컨대, 어구 "x, y, 또는 z 중 적어도 하나"는 x, y 및 z 중 임의의 하나뿐만 아니라 이들의 임의의 조합을 의미한다.
도면 요소들의 리스트
100 지속적인 취약점 관리 시스템
102 금융 기관
104 지속적인 취약점 관리 시스템
106 암호자산 스마트 계약
108 보안 제어기 클라이언트
110 샌드박스 엔진
112 리스크 스코어링 엔진
114 스케줄러
116 정책 관리자
118 보고
120 보안 제어 시스템
122 지식 베이스 엔진
124 암호자산 스마트 계약 데이터베이스
126 위협 지능
128 스마트 계약 데이터 소스
130 디지털 자산
132 제어 신호
134 인공 지능
136 새로운 취약점들
200 샌드박스 엔진 유닛들
202 디지털 자산들
204 정적 분석 유닛
206 동적 분석 유닛
208 통계적 분석 유닛
210 취약점 지식 베이스
212 스마트 계약 암호자산
214 글로벌 통계의 데이터베이스
216 정적 코드 스캐닝
218 감사 보고서 생성 유닛
220 유사한 디지털 자산들
222 컴파일
224 가상 머신에서의 실행
226 온라인 예측 엔진
228 정적 결과
230 동적 결과
232 리스크 스코어
234 취약한 자산
236 통계적 취약점 데이터
238 컴파일된 코드
240 재진입 취약점 패턴
242 키-값 쌍들
300 가상 머신에서의 동적 실행
302 계약 A
304 계약 B
306 저장 값들
308 바이트코드
310 경로 조건
312 호출
400 머신 러닝
402 샌드박스 엔진
404 머신 러닝 모델 트레이닝
406 알려진 적법한 디지털 자산들
408 알려진 취약한 디지털 자산들
410 적법한 스마트 계약 암호자산
412 취약한 스마트 계약 암호자산
414 회귀 모델
416 제공된 트레이닝 데이터
418 제공된 트레이닝 데이터
420 머신 러닝 알고리즘
500 리스크 스코어링 엔진
502 샌드박스 엔진
504 리스크 스코어링 엔진
506 스마트 계약 암호자산
508 회귀 모델
510 스코어
512 디지털 자산들의 적어도 하나의 데이터베이스
514 샌드박스 엔진 결과들
516 알려진 취약점들
518 알려진 적법한 디지털 자산들
520 알려진 취약한 디지털 자산들
522 오프라인 트레이닝 엔진
524 머신 러닝 알고리즘
600 디지털 자산 트레이딩 거래소
602 시작
604 블록
606 블록
608 결정 블록
610 식별된 취약한 자산
612 블록
614 블록
616 블록
618 블록
620 블록
622 완료 블록
624 적법한 디지털 자산들
626 트레이딩 쌍들
628 조치
630 취약한 디지털 자산들
700 예방적 스캐닝
702 시작
704 결정 블록
706 블록
708 블록
710 결정 블록
712 블록
714 블록
716 완료 블록
718 트레이딩 쌍들
800 스마트 계약
802 스마트 계약 프로그램 언어
804 스마트 계약 명칭
806 스마트 계약 코드
900 방향성 비순환 그래프
902 노드들
904 에지들
1000 감사 보고서
1002 코드 라인
1004 심각한 레벨
1006 히트맵
1008 상태
1010 히트맵 데이터
1100 방법
1102 블록
1104 블록
1106 블록
1108 블록
1200 블록체인 트랜잭션 프로세스
1202 트랜잭션 요청 디바이스
1300 블록체인 형성
1302 메인체인
1304 고립 블록들
1306 시작 블록
1400 블록체인
1402 트랜잭션 1
1404 트랜잭션 2
1406 블록 1 소유자 퍼블릭 키
1408 O(0) 서명
1410 트랜잭션 3
1412 블록 2 소유자 퍼블릭 키
1414 O(1) 서명
1416 블록 3 소유자 퍼블릭 키
1418 O(2) 서명
1500 기본 딥 뉴럴 네트워크
1502 입력 층
1504 은닉 층들
1506 출력 층
1600 인공 뉴런
1602 활성화 함수
1702 랩톱
1704 컴퓨터
1706 웹 서버
1708 네트워크
1710 데이터 서버
1712 프로세서
1714 네트워크 인터페이스
1716 RAM
1718 ROM
1720 입력/출력 인터페이스들
1722 메모리
1724 운영 시스템 소프트웨어
1726 제어 로직
1728 다른 애플리케이션 소프트웨어
1730 제1 데이터베이스
1732 제2 데이터베이스

Claims (20)

  1. 블록체인 디지털 자산들에 대한 취약점 관리 시스템으로서,
    취약점들에 대해 디지털 자산들을 스캔하도록 구성된 샌드박스 엔진;
    인공 지능을 포함하는 지식 베이스 엔진(knowledge base engine) ― 상기 지식 베이스 엔진은 새로운 취약점들 및 위협 지능(threat intelligence)에 관련된 정보를 획득하도록 구성됨 ―;
    머신 러닝(machine learning)을 포함하는 리스크 스코어링 엔진 ― 상기 리스크 스코어링 엔진은 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하도록 구성됨 ―; 및
    식별된 취약한 자산에 할당된 상기 리스크 스코어에 기반하여 상기 식별된 취약한 자산에 대해 조치를 취하도록 구성된 보안 제어 시스템을 포함하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  2. 제1 항에 있어서, 상기 샌드박스 엔진은:
    정적 코드 스캐닝을 수행하도록 구성된 정적 분석 유닛;
    컴파일된 코드를 생성하고 가상 머신에서 상기 컴파일된 코드를 실행하도록 구성된 동적 분석 유닛;
    상기 디지털 자산들에 대한 글로벌 통계의 데이터베이스를 포함하는 통계적 분석 유닛 ― 상기 통계적 분석 유닛은:
    상기 리스크 스코어링 엔진으로부터 각각의 취약한 자산의 상기 리스크 스코어를 수신하고;
    상기 글로벌 통계의 데이터베이스로부터 유사한 디지털 자산들을 식별하고; 그리고
    각각의 디지털 자산의 취약점들과 관련하여 유사한 디지털 자산들의 집단 내에서 각각의 디지털 자산의 상태를 나타내는 통계적 취약점 데이터를 생성하도록 구성됨 ―; 및
    상기 통계적 분석 유닛의 상기 통계적 취약점 데이터에 기반하여 히트맵(heatmap)을 생성하도록 구성된 감사 보고서 생성 유닛을 포함하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  3. 제2 항에 있어서, 상기 히트맵은 코드의 라인들의 수의 함수로서 상기 리스크 스코어를 디스플레이하는 그래프를 포함하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  4. 제1 항에 있어서, 상기 리스크 스코어링 엔진은:
    머신 러닝 알고리즘을 포함하는 회귀 모델(regression model);
    디지털 자산들의 적어도 하나의 데이터베이스에 대한 액세스 ― 상기 디지털 자산들의 적어도 하나의 데이터베이스는:
    상기 디지털 자산들의 알려진 취약점들;
    알려진 취약한 디지털 자산들; 및
    알려진 적법한(legitimate) 디지털 자산들을 포함함 ―;
    상기 머신 러닝 알고리즘 및 제공된 트레이닝 데이터의 파라미터들을 추정하도록 구성된 오프라인 트레이닝 엔진; 및
    상기 리스크 스코어링 엔진을 포함하는 온라인 예측 엔진을 포함하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  5. 제4 항에 있어서, 상기 제공된 트레이닝 데이터는 알려진 적법한 디지털 자산들로부터의 특징 벡터들 및 알려진 취약한 디지털 자산들로부터의 특징 벡터들을 포함하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  6. 제1 항에 있어서, 상기 보안 제어 시스템은:
    디지털 자산들을 식별하기 위한 로직;
    취약점들에 대해 디지털 자산들을 스캔하고 그러한 디지털 자산들을 취약한 디지털 자산들로서 식별하기 위한 로직;
    디지털 자산 트레이딩 거래소 상에서 취약한 디지털 자산들의 트레이딩을 중단하는 능력을 포함하는 디지털 자산들을 보호하기 위한 로직; 및
    상기 디지털 자산 트레이딩 거래소 상에서의 트레이드에 응답하기 위한 로직을 포함하며, 상기 트레이드는 취약한 디지털 자산들 및 적법한 디지털 자산들을 포함하고, 상기 취약한 디지털 자산들은 중단되고 상기 적법한 디지털 자산들은 진행되도록 허용되는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  7. 제1 항에 있어서, 상기 지식 베이스 엔진은 위협 지능을 수신할 시에 재진입 취약점 패턴을 포함하도록 상기 정보를 업데이트하는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  8. 제7 항에 있어서, 상기 재진입 취약점 패턴은 상기 샌드박스 엔진의 상기 동적 분석 유닛에 의해 검출되는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  9. 제7 항에 있어서, 상기 재진입 취약점 패턴은 키-값 쌍들로서 기술되는,
    블록체인 디지털 자산들에 대한 취약점 관리 시스템.
  10. 디지털 자산들을 보호하는 방법으로서,
    샌드박스 엔진을 사용하여 취약점들에 대해 디지털 자산들을 스캐닝하는 단계;
    인공 지능을 포함하는 지식 베이스 엔진을 사용하여 새로운 취약점들 및 위협 지능에 관련된 정보를 획득하는 단계;
    머신 러닝을 포함하는 리스크 스코어링 엔진을 사용하여 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하는 단계; 및
    보안 제어 시스템을 사용하여, 식별된 취약한 자산에 할당된 상기 리스크 스코어에 기반하여 상기 식별된 취약한 자산에 대해 조치를 취하는 단계를 포함하는,
    디지털 자산들을 보호하는 방법.
  11. 제10 항에 있어서, 상기 샌드박스 엔진은:
    정적 코드 스캐닝을 수행하도록 구성된 정적 분석 유닛;
    컴파일된 코드를 생성하고 가상 머신에서 상기 컴파일된 코드를 실행하도록 구성된 동적 분석 유닛;
    상기 디지털 자산들에 대한 글로벌 통계의 데이터베이스를 포함하는 통계적 분석 유닛 ― 상기 통계적 분석 유닛은:
    상기 리스크 스코어링 엔진으로부터 각각의 취약한 자산의 상기 리스크 스코어를 수신하고;
    상기 글로벌 통계의 데이터베이스로부터 유사한 디지털 자산들을 식별하고; 그리고
    각각의 디지털 자산의 취약점들과 관련하여 유사한 디지털 자산들의 집단 내에서 각각의 디지털 자산의 상태를 나타내는 통계적 취약점 데이터를 생성하도록 구성됨 ―; 및
    상기 통계적 분석 유닛의 상기 통계적 취약점 데이터에 기반하여 히트맵을 생성하도록 구성된 감사 보고서 생성 유닛을 포함하는,
    디지털 자산들을 보호하는 방법.
  12. 제11 항에 있어서, 상기 히트맵은 코드의 라인들의 수의 함수로서 상기 리스크 스코어를 디스플레이하는 그래프를 포함하는,
    디지털 자산들을 보호하는 방법.
  13. 제10 항에 있어서, 상기 리스크 스코어링 엔진은:
    머신 러닝 알고리즘을 포함하는 회귀 모델;
    디지털 자산들의 적어도 하나의 데이터베이스에 대한 액세스 ― 상기 디지털 자산들의 적어도 하나의 데이터베이스는:
    상기 디지털 자산들의 알려진 취약점들;
    알려진 취약한 디지털 자산들; 및
    알려진 적법한 디지털 자산들을 포함함 ―;
    상기 머신 러닝 알고리즘 및 제공된 트레이닝 데이터의 파라미터들을 추정하도록 구성된 오프라인 트레이닝 엔진; 및
    상기 리스크 스코어링 엔진을 포함하는 온라인 예측 엔진을 포함하는,
    디지털 자산들을 보호하는 방법.
  14. 제13 항에 있어서, 상기 제공된 트레이닝 데이터는 알려진 적법한 디지털 자산들로부터의 특징 벡터들 및 알려진 취약한 디지털 자산들로부터의 특징 벡터들을 포함하는,
    디지털 자산들을 보호하는 방법.
  15. 제10 항에 있어서, 상기 보안 제어 시스템은:
    디지털 자산들을 식별하기 위한 로직;
    취약점들에 대해 디지털 자산들을 스캔하고 그러한 디지털 자산들을 취약한 디지털 자산들로서 식별하기 위한 로직;
    디지털 자산 트레이딩 거래소 상에서 취약한 디지털 자산들의 트레이딩을 중단하는 능력을 포함하는 디지털 자산들을 보호하기 위한 로직; 및
    상기 디지털 자산 트레이딩 거래소 상에서의 트레이드에 응답하기 위한 로직을 포함하며, 상기 트레이드는 취약한 디지털 자산들 및 적법한 디지털 자산들을 포함하고, 상기 취약한 디지털 자산들은 중단되고 상기 적법한 디지털 자산들은 진행되도록 허용되는,
    디지털 자산들을 보호하는 방법.
  16. 비-일시적인 컴퓨터-판독가능 저장 매체로서, 상기 컴퓨터-판독가능 저장 매체는 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금:
    샌드박스 엔진을 사용하여 취약점들에 대해 디지털 자산들을 스캔하고;
    인공 지능을 포함하는 지식 베이스 엔진을 사용하여 새로운 취약점들 및 위협 지능에 관련된 정보를 획득하고;
    머신 러닝을 포함하는 리스크 스코어링 엔진을 사용하여 샌드박스 엔진 결과들을 분석하고 각각의 취약한 자산에 리스크 스코어를 할당하고; 그리고
    보안 제어 시스템을 사용하여, 식별된 취약한 자산에 할당된 상기 리스크 스코어에 기반하여 상기 식별된 취약한 자산에 대해 조치를 취하게 하는 명령들을 포함하는,
    비-일시적인 컴퓨터-판독가능 저장 매체.
  17. 제16 항에 있어서, 상기 샌드박스 엔진은:
    정적 코드 스캐닝을 수행하도록 구성된 정적 분석 유닛;
    컴파일된 코드를 생성하고 가상 머신에서 상기 컴파일된 코드를 실행하도록 구성된 동적 분석 유닛;
    상기 디지털 자산들에 대한 글로벌 통계의 데이터베이스를 포함하는 통계적 분석 유닛 ― 상기 통계적 분석 유닛은:
    상기 리스크 스코어링 엔진으로부터 각각의 취약한 자산의 상기 리스크 스코어를 수신하고;
    상기 글로벌 통계의 데이터베이스로부터 유사한 디지털 자산들을 식별하고; 그리고
    각각의 디지털 자산의 취약점들과 관련하여 유사한 디지털 자산들의 집단 내에서 각각의 디지털 자산의 상태를 나타내는 통계적 취약점 데이터를 생성하도록 구성됨 ―; 및
    상기 통계적 분석 유닛의 상기 통계적 취약점 데이터에 기반하여 히트맵을 생성하도록 구성된 감사 보고서 생성 유닛을 포함하는,
    비-일시적인 컴퓨터-판독가능 저장 매체.
  18. 제16 항에 있어서, 상기 보안 제어 시스템은:
    디지털 자산들을 식별하기 위한 로직;
    취약점들에 대해 디지털 자산들을 스캔하고 그러한 디지털 자산들을 취약한 디지털 자산들로서 식별하기 위한 로직;
    디지털 자산 트레이딩 거래소 상에서 취약한 디지털 자산들의 트레이딩을 중단하는 능력을 포함하는 디지털 자산들을 보호하기 위한 로직; 및
    상기 디지털 자산 트레이딩 거래소 상에서의 트레이드에 응답하기 위한 로직을 포함하며, 상기 트레이드는 취약한 디지털 자산들 및 적법한 디지털 자산들을 포함하고, 상기 취약한 디지털 자산들은 중단되고 상기 적법한 디지털 자산들은 진행되도록 허용되는,
    비-일시적인 컴퓨터-판독가능 저장 매체.
  19. 제16 항에 있어서, 상기 지식 베이스 엔진은, 위협 지능을 수신할 시에, 재진입 취약점 패턴을 포함하도록 상기 정보를 업데이트하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  20. 제19 항에 있어서, 상기 재진입 취약점 패턴은 상기 샌드박스 엔진의 상기 동적 분석 유닛에 의해 검출되는,
    비-일시적 컴퓨터-판독가능 저장 매체.
KR1020227016104A 2019-10-15 2020-10-12 샌드박스 및 인공지능을 사용한 블록체인 스마트 계약 기반 디지털 자산에 대한 지속적인 취약점 관리 시스템 KR20220141276A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/653,599 US11526614B2 (en) 2019-10-15 2019-10-15 Continuous vulnerability management system for blockchain smart contract based digital asset using sandbox and artificial intelligence
US16/653,599 2019-10-15
PCT/US2020/055281 WO2021076457A1 (en) 2019-10-15 2020-10-12 Continuous vulnerability management system for blockchain smart contract based digital asset using sandbox and artificial intelligence

Publications (1)

Publication Number Publication Date
KR20220141276A true KR20220141276A (ko) 2022-10-19

Family

ID=75383131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227016104A KR20220141276A (ko) 2019-10-15 2020-10-12 샌드박스 및 인공지능을 사용한 블록체인 스마트 계약 기반 디지털 자산에 대한 지속적인 취약점 관리 시스템

Country Status (3)

Country Link
US (1) US11526614B2 (ko)
KR (1) KR20220141276A (ko)
WO (1) WO2021076457A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523014B1 (ko) 2022-12-29 2023-04-18 주식회사 웨이브릴 인공지능과 블록체인을 이용한 온라인 거래문서 관리 방법 및 장치, 시스템
KR20240059753A (ko) 2022-10-26 2024-05-08 극동대학교 산학협력단 자산객체의 센싱데이터를 이용한 안전성·신뢰성 검증제어식 스마트 컨트랙트 블록체인형 조각투자 형성 장치 및 방법
KR102664072B1 (ko) * 2022-11-25 2024-05-09 고려대학교 산학협력단 스마트 컨트랙트 취약점 수정 방법 및 장치

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11470106B1 (en) * 2020-02-03 2022-10-11 Rapid7, Inc. Exploitability risk model for assessing risk of cyberattacks
US11514334B2 (en) * 2020-02-07 2022-11-29 International Business Machines Corporation Maintaining a knowledge database based on user interactions with a user interface
US11558173B2 (en) * 2020-03-20 2023-01-17 Mastercard International Incorporated Method and system for auditing smart contracts
US11176247B2 (en) * 2020-04-02 2021-11-16 Aqua Security Software, Ltd. System and method for container assessment using sandboxing
US11539725B2 (en) * 2020-04-23 2022-12-27 Specter Ops, Inc. System and method for continuous collection, analysis and reporting of attack paths choke points in a directory services environment
US11509677B2 (en) * 2020-05-05 2022-11-22 Uber Technologies, Inc. Automatically detecting vulnerability remediations and regressions
US11722491B1 (en) * 2020-06-30 2023-08-08 Amazon Technologies, Inc. Cumulative risk-based scoring for quorum authorization
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436615B2 (en) * 2020-08-28 2022-09-06 Anchain.ai Inc. System and method for blockchain transaction risk management using machine learning
US11907955B2 (en) 2020-08-28 2024-02-20 Anchain.ai Inc. System and method for blockchain automatic tracing of money flow using artificial intelligence
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11914696B1 (en) 2020-09-30 2024-02-27 Amazon Technologies, Inc. Quorum-based access control management
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
KR102378377B1 (ko) * 2020-11-13 2022-03-24 고려대학교 산학협력단 스마트 컨트랙트 내의 취약 트랜잭션 시퀀스 획득 장치 및 방법
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
EP4288889A1 (en) 2021-02-08 2023-12-13 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) * 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
EP4305539A1 (en) 2021-03-08 2024-01-17 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
CN113269331B (zh) * 2021-04-25 2023-07-25 云南电网有限责任公司信息中心 一种变压器检修作业的知识库构建方法
CN113449303B (zh) * 2021-06-28 2022-11-11 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和系统
WO2023023379A1 (en) * 2021-08-19 2023-02-23 Digital Asset Capital, Inc. Semantic map generation from natural-language text documents
US20230112261A1 (en) * 2021-10-10 2023-04-13 International Business Machines Corporation Validating certificates
US20230169175A1 (en) * 2021-11-29 2023-06-01 International Business Machines Corporation Managing Zero-Day Vulnerabilities
WO2023105629A1 (ja) * 2021-12-07 2023-06-15 日本電気株式会社 セキュリティ対策立案システム、セキュリティ対策立案方法及び、プログラム
US20230177167A1 (en) * 2021-12-08 2023-06-08 Paypal, Inc. Automatic verification of decentrailized protocols
CN113919841A (zh) * 2021-12-13 2022-01-11 北京雁翎网卫智能科技有限公司 一种基于静态特征和动态插桩的区块链交易监测方法及系统
CN115037512B (zh) * 2022-04-27 2023-06-20 中国科学院信息工程研究所 面向以太坊公有链智能合约的形式化静态分析方法及装置
US11681805B1 (en) 2022-05-26 2023-06-20 Morgan Stanley Services Group Inc. System for analytic data memorialization, data science, and validation
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments
US11989276B2 (en) 2022-06-24 2024-05-21 Bank Of America Corporation Intelligent authentication of users in Metaverse leveraging non-fungible tokens and behavior analysis
CN115242554B (zh) * 2022-09-21 2023-01-17 航天宏图信息技术股份有限公司 一种基于安全沙箱的数据使用权交易方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5559306B2 (ja) * 2009-04-24 2014-07-23 アルグレス・インコーポレイテッド 対話的グラフを用いた予測モデリングのための企業情報セキュリティ管理ソフトウェア
EP2610776B1 (en) * 2011-09-16 2019-08-21 Veracode, Inc. Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security
US10686819B2 (en) 2013-02-19 2020-06-16 Proofpoint, Inc. Hierarchical risk assessment and remediation of threats in mobile networking environment
US8984643B1 (en) * 2014-02-14 2015-03-17 Risk I/O, Inc. Ordered computer vulnerability remediation reporting
US10326778B2 (en) 2014-02-24 2019-06-18 Cyphort Inc. System and method for detecting lateral movement and data exfiltration
US20170132620A1 (en) 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US20170344983A1 (en) * 2016-05-30 2017-11-30 Business Information Exchange System Corp. BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger
US10510034B2 (en) * 2016-09-21 2019-12-17 Coinbase, Inc. Investigator interface and override functionality within compliance determination and enforcement platform
US10339321B2 (en) * 2017-05-02 2019-07-02 Dignity Health Cybersecurity maturity forecasting tool/dashboard
WO2019089654A1 (en) 2017-10-30 2019-05-09 Pricewaterhousecoopers Llp Implementation of continuous real-time validation of distributed data storage systems
US11144893B2 (en) * 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains
US20190156923A1 (en) * 2017-11-17 2019-05-23 LunaPBC Personal, omic, and phenotype data community aggregation platform
US11121872B2 (en) * 2018-01-23 2021-09-14 Zeronorth, Inc. Trusted verification of cybersecurity remediation
US11257073B2 (en) * 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
US20190304578A1 (en) * 2018-03-23 2019-10-03 LunaPBC Omic data aggregation with data quality valuation
US11194837B2 (en) * 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
US11030217B2 (en) * 2018-05-01 2021-06-08 International Business Machines Corporation Blockchain implementing cross-chain transactions
US20200035341A1 (en) * 2018-07-30 2020-01-30 LunaPBC De-identification omic data aggregation platform with permitted third party access
US11741196B2 (en) * 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
US11436615B2 (en) * 2020-08-28 2022-09-06 Anchain.ai Inc. System and method for blockchain transaction risk management using machine learning

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240059753A (ko) 2022-10-26 2024-05-08 극동대학교 산학협력단 자산객체의 센싱데이터를 이용한 안전성·신뢰성 검증제어식 스마트 컨트랙트 블록체인형 조각투자 형성 장치 및 방법
KR102664072B1 (ko) * 2022-11-25 2024-05-09 고려대학교 산학협력단 스마트 컨트랙트 취약점 수정 방법 및 장치
KR102523014B1 (ko) 2022-12-29 2023-04-18 주식회사 웨이브릴 인공지능과 블록체인을 이용한 온라인 거래문서 관리 방법 및 장치, 시스템

Also Published As

Publication number Publication date
US11526614B2 (en) 2022-12-13
US20210110047A1 (en) 2021-04-15
WO2021076457A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
US11526614B2 (en) Continuous vulnerability management system for blockchain smart contract based digital asset using sandbox and artificial intelligence
Pan et al. Detecting web attacks with end-to-end deep learning
US7854002B2 (en) Pattern matching for spyware detection
CN109478263A (zh) 用于体系结构评估和策略执行的系统和设备
Chen et al. Why do smart contracts self-destruct? investigating the selfdestruct function on ethereum
US11966475B2 (en) Security level-based and trust-based recommendations for software components
US20220239677A1 (en) Protecting Computer Assets From Malicious Attacks
KR20220109418A (ko) 신경 흐름 증명
Alhassan et al. A fuzzy classifier-based penetration testing for web applications
Srivastava et al. An effective computational technique for taxonomic position of security vulnerability in software development
Wu et al. Graphguard: Detecting and counteracting training data misuse in graph neural networks
US20230396637A1 (en) Adaptive system for network and security management
Skandylas et al. Design and implementation of self-protecting systems: A formal approach
US11928049B2 (en) Blockchain system for source code testing and script generation with artificial intelligence
Chondamrongkul et al. Formal Security Analysis for Blockchain-based Software Architecture.
Ufuktepe et al. Estimating software robustness in relation to input validation vulnerabilities using Bayesian networks
Bodei et al. Security metrics at work on the things in IoT systems
Bertino et al. Machine Learning Techniques for Cybersecurity
Hasan Machine learning based framework for smart contract vulnerability detection in Ethereum blockchain
Tizpaz-Niari et al. Quantitative estimation of side-channel leaks with neural networks
Appiah MultiVul-GCN: automatic smart contract vulnerability detection using multi-graph convolutional networks
US20240160744A1 (en) Identifying and assessing costs associated with correcting vulnerabilities in machine learning models
US20240073229A1 (en) Real time behavioral alert processing in computing environments
US20220358031A1 (en) Blockchain System for Source Code Testing and Script Generation with Artificial Intelligence
US11698977B1 (en) Predicting and quantifying weaponization of software weaknesses

Legal Events

Date Code Title Description
E902 Notification of reason for refusal