맞춤기술찾기

이전대상기술

코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치 및 방법

  • 기술번호 : KST2020002071
  • 담당센터 :
  • 전화번호 :
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명은 PLC용 프로그래밍시에 기계어 코드(machine code, 실행코드)가 PLC로 다운로드 되기 전, 바이너리 파일을 정적으로 분석하여 PLC 프로그램의 보안성을 강화할 수 있도록 한 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치 및 방법에 관한 것으로, 실행 코드로부터 콜 그래프를 생성하고 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들을 탐지하는 함수 새니타이저;실행코드를 역어셈블(disassemble)한 후 포인터 변수에 대한 이상 연산(anomaly operation) 패턴을 탐지하고, 소스코드와 심볼 정보를 이용하여 보안 및 안전에 위협이 될 수 있는 메모리 값 설정이나 변경을 탐지는 포인터 새니타이저;를 포함하고 실행코드 새니타이저가 구성되어, 통합개발환경(IDE)에서 컴파일된 기계어 코드(machine code)를 PLC로 다운로드하기 전에 정적으로 분석하여 취약한 함수나 포인터의 사용을 식별하여 제거할 수 있도록 하는 것이다.
Int. CL G06F 21/56 (2013.01.01)
CPC G06F 21/563(2013.01)
출원번호/일자 1020180082909 (2018.07.17)
출원인 단국대학교 산학협력단
등록번호/일자
공개번호/일자 10-2020-0008799 (2020.01.29) 문서열기
공고번호/일자 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 등록
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2018.07.17)
심사청구항수 18

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 단국대학교 산학협력단 대한민국 경기도 용인시 수지구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 조성제 경기도 용인시 수지구
2 최광준 경기도 용인시 수지구
3 이명건 충청남도 천안시 동남구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 정기택 대한민국 서울특별시 서초구 강남대로**길 **, *층 (반포동, 새로나빌딩)(스카이특허법률사무소)
2 오위환 대한민국 서울특별시 서초구 강남대로**길 **, *층 (반포동, 새로나빌딩)(스카이특허법률사무소)
3 나성곤 대한민국 서울특별시 서초구 강남대로**길 **, *층 (반포동, 새로나빌딩)(스카이특허법률사무소)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 단국대학교 산학협력단 경기도 용인시 수지구
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2018.07.17 수리 (Accepted) 1-1-2018-0704408-62
2 선행기술조사의뢰서
Request for Prior Art Search
2018.11.09 수리 (Accepted) 9-1-9999-9999999-89
3 선행기술조사보고서
Report of Prior Art Search
2019.01.10 수리 (Accepted) 9-1-2019-0003251-81
4 의견제출통지서
Notification of reason for refusal
2019.11.07 발송처리완료 (Completion of Transmission) 9-5-2019-0805177-82
5 [지정기간연장]기간연장(단축, 경과구제)신청서
[Designated Period Extension] Application of Period Extension(Reduction, Progress relief)
2020.01.07 수리 (Accepted) 1-1-2020-0016913-62
6 [지정기간연장]기간연장(단축, 경과구제)신청서
[Designated Period Extension] Application of Period Extension(Reduction, Progress relief)
2020.02.07 수리 (Accepted) 1-1-2020-0131627-28
7 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2020.03.09 수리 (Accepted) 1-1-2020-0248035-19
8 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2020.03.09 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2020-0248061-07
9 등록결정서
Decision to grant
2020.05.21 발송처리완료 (Completion of Transmission) 9-5-2020-0348581-96
10 출원인정보변경(경정)신고서
Notification of change of applicant's information
2020.10.26 수리 (Accepted) 4-1-2020-5239146-54
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
실행 코드로부터 호출 그래프를 생성하고 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들을 탐지하는 함수 새니타이저;실행코드를 역어셈블(disassemble)한 후 포인터 변수에 대한 이상 연산(anomaly operation) 패턴을 탐지하고, 소스코드와 심볼 정보를 이용하여 보안 및 안전에 위협이 될 수 있는 메모리 값 설정이나 변경을 탐지는 포인터 새니타이저;상기 함수 새니타이저와 포인터 새니타이저를 포함하고 실행코드 새니타이저가 구성되어,상기 실행코드 새니타이저는 통합개발환경(IDE)에서 실행 코드(executable code)를 PLC로 다운로드하기 전에 정적으로 분석하여, 상기 함수 새니타이저가 탐지한 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수 및 코딩규칙 매뉴얼에서 허용하지 않는 함수들, 상기 포인터 새니타이저가 탐지한 보안 및 안전에 위협이 될 수 있는 메모리 값 설정이나 변경을 식별하여 제거할 수 있도록 하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
2 2
제 1 항에 있어서, 상기 함수 새니타이저는,프로그램 코드 개발자가 개발한 실행 코드로 표현되는 태스크의 함수 리스트를 시그니처 DB(Database)와 비교를 하고,태스크의 함수 리스트는 상기 실행코드로부터 생성된 호출 그래프를 통하여 추출된 함수 명을 포함하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
3 3
제 2 항에 있어서, 시그니처 DB는 개발 매뉴얼에서 허용하지 않는 표준 함수나 보안 관점에서 취약한 표준 함수 명을 시그니처로 관리하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
4 4
제 2 항에 있어서, 상기 함수 새니타이저에서의 보안 및 안전에 악영향을 줄 수 있는 함수 리스트는 'Buffer Overflow 취약 함수'와 'Memory 취약성 관련 함수'로 구성되고,Buffer Overflow 취약 함수로 'trcat()',trcpy()’, ‘strncpy()’, ‘sprintf()’, ‘vsprintf()’, ‘gets()’, ‘fscanf()’, ‘scanf()’를 포함하고,memory 취약성 관련 함수로 ‘calloc()’, ‘free()’, ‘malloc()’, ‘realloc()’, ‘memcpy()’, ‘memset()’, ‘memmove()’를 포함하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
5 5
제 1 항에 있어서, 상기 함수 새니타이저는,상기 실행 코드(executable code)로부터 호출 그래프를 생성하고, 생성된 호출 그래프로부터 시스템 및 프로그램 코드 개발자가 사용하는 함수 명 및 함수 간 호출 관계를 분석하고,프로그램 코드 개발자가 개발한 실행 코드로 표현되는 태스크의 함수 리스트를 시그니처 DB(Database)와 비교를 하여 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들을 탐지한 이후, 호출 그래프를 통해 어느 위치에 어떤 함수가 사용되었는지 함수 새니타이저가 파악을 하여, 함수 새니타이저에서 파악한 결과와 소스코드를 비교하여 프로그램 코드 개발자에 의해 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들이 포함되었는지 판단하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
6 6
제 1 항에 있어서, 상기 포인터 새니타이저는,실행코드를 대상으로 포인터 변수에 대한 이상 연산(anomaly operation) 패턴 탐지 동작을 수행하고, 실행코드를 대상으로 한 이상 연산(anomaly operation) 패턴 탐지가 어려운 경우 소스 코드 분석을 통해 이상 연산(anomaly operation) 패턴 탐지에 필요한 정보를 추출하고,포인터 변수에 직접 주소를 하드코딩하여 특정 값을 설정하는 명령 패턴을 탐지하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
7 7
제 6 항에 있어서, 상기 포인터 새니타이저는,소스코드와 심볼 정보를 통해 프로그램 코드 개발자가 개발한 실행 코드로 표현되는 각 태스크의 스택의 범위를,태스크 코드의 시작점을 가리키는 포인터인 인자(App_Task2), 태스크 스택의 시작위치를 가리키는 포인터인 인자(App_TaskPostStk[])를 이용하여, App_TaskPostStk[]가 가리키는 위치는 심볼 정보를 통해 메모리 주소를 확인하고, 스택의 크기를 지정하는 인자(APP_CFG_TASK_STK_SIZE)의 값을 사용하여 태스크의 스택 범위를 확인하여 계산하고,각 태스크에 할당된 주소 범위를 벗어난 포인터 연산을 탐지하여 유효성과 정확도를 개선하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
8 8
제 7 항에 있어서, 상기 포인터 새니타이저는,포인터 변수 연산을 탐지하는데 필요한 코드 패턴을 관리하는 패턴 DB를 포함하고,패턴 DB에 유지할 시그니처를 생성하기 위해 적용 대상 PLC의 CPU용 어셈블리 사용 패턴을 분석하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
9 9
제 8 항에 있어서, 상기 포인터 새니타이저에서 탐지하고자 하는 패턴은,포인터 변수에 하드코딩된 주소 값을 할당하는 명령들과 포인터 변수가 가리키는 주소번지의 값을 변경하는 명령들로 구성되는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
10 10
제 9 항에 있어서, 상기 포인터 새니타이저는,기계어 코드를 대상으로 한 포인터 새니타이저를 적용하기 위해 기계어 코드를 역어셈블하여 어셈블리 코드 분석을 하고,포인터 변수에 대한 이상 연산(anomaly operation) 패턴 탐지 동작 수행시에,어셈블리 코드만을 사용해서 하드코딩된 메모리 주소 값을 식별하거나,소스코드를 분석하여 하드코딩된 메모리 주소 값을 식별하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 장치
11 11
삭제
12 12
통합개발환경(IDE)에서 실행 코드(executable code)를 PLC로 다운로드하기 전에 정적으로 분석하여, 함수 새니타이저가 탐지한 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수을 식별하여 제거할 수 있도록 하기 위하여,함수 새니타이저가 실행 코드(executable code)로부터 호출 그래프를 생성하는 단계;생성된 호출 그래프로부터 시스템 및 프로그램 코드 개발자가 사용하는 함수 명 및 함수 간 호출 관계를 분석하는 단계;프로그램 코드 개발자가 개발한 실행 코드로 표현되는 태스크의 함수 리스트를 시그니처 DB(Database)와 비교를 하는 단계;PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들을 탐지하고, 호출 그래프를 통해 어느 위치에 어떤 함수가 사용되었는지 함수 새니타이저가 파악을 하는 단계;함수 새니타이저에서 파악한 결과와 소스코드를 비교하여 프로그램 코드 개발자에 의해 PLC에 악영향을 줄 수 있는 표준 라이브러리 함수나 코딩규칙 매뉴얼에서 허용하지 않는 함수들이 포함되었는지 판단하는 단계;를 수행하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
13 13
제 12 항에 있어서, 시그니처 DB는 개발 매뉴얼에서 허용하지 않는 표준 함수나 보안 관점에서 취약한 표준 함수 명을 시그니처로 관리하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
14 14
제 12 항에 있어서, 상기 함수 새니타이저에서의 보안 및 안전에 악영향을 줄 수 있는 함수 리스트는 'Buffer Overflow 취약 함수'와 'Memory 취약성 관련 함수'로 구성되고,Buffer Overflow 취약 함수로 'trcat()',trcpy()’, ‘strncpy()’, ‘sprintf()’, ‘vsprintf()’, ‘gets()’, ‘fscanf()’, ‘scanf()’를 포함하고,memory 취약성 관련 함수로 ‘calloc()’, ‘free()’, ‘malloc()’, ‘realloc()’, ‘memcpy()’, ‘memset()’, ‘memmove()’를 포함하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
15 15
통합개발환경(IDE)에서 실행 코드(executable code)를 PLC로 다운로드하기 전에 정적으로 분석하여 포인터 새니타이저가 탐지한 보안 및 안전에 위협이 될 수 있는 메모리 값 설정이나 변경을 식별하여 제거할 수 있도록 하기 위하여,포인터 새니타이저가 소스코드와 심볼 정보를 통해 프로그램 코드 개발자가 개발한 실행 코드로 표현되는 각 태스크의 스택의 범위를, 태스크 코드의 시작점을 가리키는 포인터인 인자(App_Task2), 태스크 스택의 시작위치를 가리키는 포인터인 인자(App_TaskPostStk[])를 이용하여, App_TaskPostStk[]가 가리키는 위치는 심볼 정보를 통해 메모리 주소를 확인하고, 스택의 크기를 지정하는 인자(APP_CFG_TASK_STK_SIZE)의 값을 사용하여 태스크의 스택 범위를 확인하여 계산하는 단계;태스크의 소스코드 내부에 포인터 변수가 있는지를 확인하고, 포인터 변수에 메모리 주소를 하드코딩 하는지 확인하는 단계;포인터 변수에 입력되는 주소 값이 해당 태스크의 스택 범위를 벗어나는 경우 이를 탐지하는 단계;를 포함하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
16 16
제 15 항에 있어서, 상기 포인터 새니타이저는,실행코드를 대상으로 포인터 변수에 대한 이상 연산(anomaly operation) 패턴 탐지 동작을 수행하고, 실행코드를 대상으로 한 이상 연산(anomaly operation) 패턴 탐지가 어려운 경우 소스 코드 분석을 통해 이상 연산(anomaly operation) 패턴 탐지에 필요한 정보를 추출하고,포인터 변수에 직접 주소를 하드코딩하여 특정 값을 설정하는 명령 패턴을 탐지하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
17 17
제 16 항에 있어서, 상기 포인터 새니타이저는,포인터 변수 연산을 탐지하는데 필요한 코드 패턴을 관리하는 패턴 DB를 포함하고,패턴 DB에 유지할 시그니처를 생성하기 위해 적용 대상 PLC의 CPU용 어셈블리 사용 패턴을 분석하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
18 18
제 16 항에 있어서, 상기 포인터 새니타이저에서 탐지하고자 하는 패턴은,포인터 변수에 하드코딩된 주소 값을 할당하는 명령들과 포인터 변수가 가리키는 주소번지의 값을 변경하는 명령들로 구성되는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
19 19
제 16 항에 있어서, 상기 포인터 새니타이저는,기계어 코드를 대상으로 한 포인터 새니타이저를 적용하기 위해 기계어 코드를 역어셈블하여 어셈블리 코드 분석을 하고,포인터 변수에 대한 이상 연산(anomaly operation) 패턴 탐지 동작 수행시에,어셈블리 코드만을 사용해서 하드코딩된 메모리 주소 값을 식별하거나,소스코드를 분석하여 하드코딩된 메모리 주소 값을 식별하는 것을 특징으로 하는 코딩 규칙 기반으로 PLC용 안전한 프로그래밍을 지원하기 위한 방법
지정국 정보가 없습니다
패밀리정보가 없습니다
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 산업통상자원부 (주)수산이앤에스 에너지기술개발사업 원전 안전등급제어기기(PLC) 사이버침해 예방 및 탐지 기술 개발