KR102244281B1 - 커널 모듈 로딩 방법 및 장치 - Google Patents

커널 모듈 로딩 방법 및 장치 Download PDF

Info

Publication number
KR102244281B1
KR102244281B1 KR1020197007612A KR20197007612A KR102244281B1 KR 102244281 B1 KR102244281 B1 KR 102244281B1 KR 1020197007612 A KR1020197007612 A KR 1020197007612A KR 20197007612 A KR20197007612 A KR 20197007612A KR 102244281 B1 KR102244281 B1 KR 102244281B1
Authority
KR
South Korea
Prior art keywords
kernel
loaded
kernel module
identifier information
loading
Prior art date
Application number
KR1020197007612A
Other languages
English (en)
Other versions
KR20190039279A (ko
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 KR20190039279A publication Critical patent/KR20190039279A/ko
Application granted granted Critical
Publication of KR102244281B1 publication Critical patent/KR102244281B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

커널 모듈 로딩 방법 및 장치를 개시한다. 해당 방법의 일 구체적인 실시예는, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하는 단계; 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하되, 상기 식별자 정보는 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 것을 나타내기 위한 것인 단계; 및 상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 단계를 포함한다. 해당 실시예는 로딩하고자 하는 커널 모듈의

Description

커널 모듈 로딩 방법 및 장치
본 특허 출원은 2017년 2월 22일에 제출한 출원번호가 201710096226.X인 중국 특허 출원의 우선권을 주장하는 바, 상기 출원의 모든 내용은 통합되어 본원에 원용된다. 본 출원은 컴퓨터 기술 분야에 관한 것으로, 구체적으로 운영 체제 커널 기술 분야에 관한 것이며, 특히 커널 모듈 로딩 방법 및 장치에 관한 것이다.
현재, 커널 모듈이 커널 프로그램에서 실행될 수 있도록, 통상적으로 커널의 소스 코드를 포함하는 커널 모듈을 생성할 필요는 있다. 따라서, 일반적으로, 기존의 커널 모듈 로딩 방법은, 커널의 소스 코드 및 커널 모듈이 로딩될 때 검증을 받아야 하는 파라미터(예를 들어, 커널 버전, 커널 기호 및 CRC(Cyclic Redundancy Check, 순환 중복 검사 코드))에 따라 커널 모듈에 대해 재컴파일 또는 재수정을 진행하여 커널의 검증 메커니즘을 통과하고 커널 모듈을 커널 중에 로딩하는 것을 가리킨다.
커널 모듈은 커널 모듈이 컴파일될 때 의존한 소스 코드에 대응되는 커널 상에 로딩될 수 밖에 없다. 따라서, 동일한 운영 체제의 커널 버전이 많을 경우, 상이한 버전의 커널에 적합하도록 일반적으로 커널 모듈에 대해 여러 번의 재컴파일 또는 재수정은 진행되어야 한다.
본 출원은 상기 배경기술 부분에서 언급된 기술적 문제를 해결하기 위해 안출한 것으로, 개선된 커널 모듈 로딩 방법 및 장치를 제공하고자 한다.
제1 방면에 있어서, 본 출원은 커널 모듈 로딩 방법을 제공한다. 해당 방법은, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하는 단계; 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하되, 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것인 단계; 및 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 단계를 포함한다.
일부 실시예에 있어서, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 단계는, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 식별자 정보에 대해 보안성 검증을 진행하는 단계; 및 식별자 정보가 보안성 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 단계를 포함한다.
일부 실시예에 있어서, 해당 방법은 커널 모듈 중에서 식별자 정보를 생성하는 단계를 더 포함한다. 해당 단계는, 커널 모듈을 획득하고, 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정하는 단계; 및 커널 모듈이 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 커널 모듈 중에서 식별자 정보를 생성하는 단계를 포함한다.
일부 실시예에 있어서, 기설정된 조건은 커널 모듈이 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함한다.
일부 실시예에 있어서, 해당 방법은, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행하는 단계; 및 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 단계를 포함한다.
제2 방면에 있어서, 본 출원은 커널 모듈 로딩 장치를 제공한다. 해당 장치는, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하도록 구성된 검측 유닛; 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하도록 구성되되, 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것인 식별자 정보 확정 유닛; 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 구성된 제1 로딩 유닛을 포함한다.
일부 실시예에 있어서, 제1 로딩 유닛은, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 식별자 정보에 대해 보안성 검증을 진행하고; 식별자 정보가 보안성 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 더 구성된다.
일부 실시예에 있어서, 해당 장치는, 커널 모듈을 획득하고, 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정하도록 구성된 획득 유닛; 및 커널 모듈이 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 커널 모듈 중에서 식별자 정보를 생성하도록 구성된 생성 유닛을 더 포함한다.
일부 실시예에 있어서, 기설정된 조건은 커널 모듈이 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함한다.
일부 실시예에 있어서, 해당 장치는, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행하도록 구성된 검증 유닛; 및 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 구성된 제2 로딩 유닛을 더 포함한다.
제3 방면에 있어서, 본 출원은 서버를 제공한다. 해당 서버는 하나 또는 다수의 프로세서; 및 하나 또는 다수의 프로그램을 저장하기 위한 저장 장치를 포함한다. 하나 또는 다수의 프로그램은 하나 또는 다수의 프로세서에 의해 실행될 경우, 하나 또는 다수의 프로세서가 제1 방면에 따른 커널 모듈 로딩 방법을 구현하도록 한다.
제4 방면에 있어서, 본 출원은 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체를 제공한다. 행당 컴퓨터 프로그램은 프로세서에 의해 실행될 경우, 제1 방면에 따른 커널 모듈 로딩 방법을 구현한다.
본 출원에 따른 커널 모듈 로딩 방법 및 장치에 있어서, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측함으로써, 로딩하고자 하는 커널 모듈의 정보를 획득하여 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정한다. 해당 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재할 경우, 해당 로딩하고자 하는 커널 모듈은 목표 커널의 로딩 검증을 거치지 않으면서 목표 커널 중에 로딩될 수 있다. 이로써, 동일한 운영 체제의 상이한 버전의 커널이 로딩하고자 하는 커널 모듈을 실행할 경우, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하면, 로딩하고자 하는 커널 모듈은 상이한 버전의 커널 중에 로딩될 수 있다. 따라서, 로딩하고자 하는 커널 모듈의 적용 범위를 향상시키는 데 편리하도록 한다.
이하 첨부된 도면들을 참조하여 진행한 비 한정적인 실시예에 대한 상세한 설명으로부터, 본 출원의 기타 특징, 목적 및 장점들은 더욱 명확해 질 것이다.
도1은 본 출원이 적용 가능한 예시적 시스템의 구조도이다.
도2는 본 출원에 따른 커널 모듈 로딩 방법의 일 실시예의 흐름도이다.
도3은 본 실시예에 따른 커널 모듈 로딩 방법의 일 응용 시나리오의 개략도이다.
도4는 본 출원에 따른 커널 모듈 로딩 방법의 다른 일 실시예의 흐름도이다.
도5는 본 출원에 따른 커널 모듈 로딩 방법 중의 식별자 정보를 생성하는 단계의 일 실시예의 흐름도이다.
도6은 본 출원에 따른 커널 모듈 로딩 장치의 일 실시예의 구조적 개략도이다.
도7은 본 출원의 실시예에 따른 서버를 구현하기에 적합한 컴퓨터 시스템의 구조적 개략도이다.
이하, 첨부된 도면 및 실시예들을 결부하여 본 출원을 상세히 설명하기로 한다. 본 명세서에서 설명된 구체적인 실시예들은 오직 해당 발명을 설명하기 위한 것일 뿐, 해당 발명을 한정하기 위한 것이 아님을 이해할 것이다. 또한, 설명의 편의를 위하여, 도면에는 오직 본 발명에 관련된 부분만 도시되어 있다.
본 출원의 실시예 및 실시예의 특징들은 서로 모순되지 않는 한 상호 조합할 수 있다. 이하, 첨부된 도면을 참조하고 실시예들을 결부하여 본 출원을 상세히 설명하기로 한다.
도1은 본 출원의 커널 모듈 로딩 방법 또는 커널 모듈 로딩 장치의 실시예를 적용할 수 있는 예시적 시스템 아키텍처(100)를 나타낸다.
도1에 도시된 바와 같이, 시스템 아키텍처(100)는 단말기 장치(101, 102 및 103), 네트워크(104 및 106), 서버(105) 및 데이터베이스 서버(107)를 포함할 수 있다. 네트워크(104)는 단말기 장치(101, 102 및 103)와 서버(105) 사이에 통신 링크를 제공하는 매체이다. 네트워크(106)는 서버(105)와 데이터베이스 서버(107) 사이에 통신 링크를 제공하는 매체이다. 네트워크(104 및 106)는 유선, 무선 통신 링크 또는 광섬유 케이블 등과 같은 여려가지 연결 유형을 포함할 수 있다.
사용자는 단말기 장치(101, 102 및 103)를 이용하여 네트워크(104)를 통해 서버(105)와 인터랙션을 진행하여 메세지를 수신 또는 발신할 수 있다. 단말기 장치(101, 102 및 103)에는 웹 브라우저 애플리케이션, 검색 유형의 애플리케이션 및 인스턴트 메시징 툴 등과 같은 각종 통신 클라이언트 애플리케이션들이 설치될 수 있다.
단말기 장치(101, 102 및 103)는 각종 전자 기기일 수 있으며, 스마트폰, 태블릿 PC, 전자책 단말기 및 데스크톱 컴퓨터 등을 포함하며, 이에 한정되는 것은 아니다.
데이터베이스 서버(107)는 로딩하고자 하는 커널 모듈의 집합을 저장하는 서버일 수 있다.
서버(105)는 다양한 서비스를 제공하는 서버일 수 있고, 예를 들어, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 단말기 장치(101, 102 및 103)에 발송하는 백엔드 커널 모듈 로딩 서버일 수 있다. 백엔드 커널 모듈 로딩 서버는 해당 명령어를 검측한 후, 데이터베이스 서버(107)에서 로딩하고자 하는 커널 모듈을 획득하고, 로딩하고자 하는 커널 모듈, 목표 커널 등과 같은 데이터에 대해 분석 등 처리를 진행하며, 처리 결과(로딩 성공 여부를 지시하는 정보)를 단말기 장치에 피드백한다.
본 출원의 실시예에서 제공하는 커널 모듈 로딩 방법은 일반적으로 서버(105)에 의해 수행된다. 따라서, 커널 모듈 로딩 장치는 일반적으로 서버(105)에 설치된다.
도1 중의 단말기 장치, 네트워크, 서버 및 데이터베이스 서버의 수량은 단지 예시적인 것으로 이해할 것이다. 실제 수요에 따라, 임의 수량의 단말기 장치, 네트워크, 서버 및 데이터베이스 서버를 구비할 수 있다. 서버(105) 중에 로딩하고자 하는 커널 모듈이 저장되는 상황에서, 시스템 아키텍처(100) 중에는 데이터베이스 서버(107)가 설치되지 않을 수 있다.
도2를 더 참조하면, 본 출원에 따른 커널 모듈 로딩 방법의 일 실시예의 프로세스(200)를 도시한다. 해당 방법은 아래와 같은 단계들을 포함한다.
단계(201), 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측한다.
본 실시예에 있어서, 커널 모듈 로딩 방법을 실행하는 전자 기기(예를 들어, 도1에 도시된 서버(105))는 유선 연결 방식 또는 무선 연결 방식을 통해 사용자가 사용하는 단말기에서 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하고 수신할 수 있다. 여기서, 명령어는 사용자가 터치 단말기 상의 모 버튼(가상 버튼 또는 물리적 버튼)을 통해 개시하는 것일 수 있다. 해당 명령어는 사용자가 단말기를 통해 상기 전자 기기에 모 정보를 발송하여 개시하는 것일 수도 있다.
본 실시예에 있어서, 목표 커널은 다양한 운영 체제 중의 상이한 버전의 커널일 수 있다. 예를 들어, 윈도우즈(Windows) 그래픽 워크 인터페이스 운영 체제 중의 NT5.1, NT5.2, NT6.0, NT6.1 등과 같은 버전의 커널일 수 있다. 로딩하고자 하는 커널 모듈은 독립적 기능을 구비하나 독립적으로 실행되지 못한다는 프로그램을 포함할 수 있다. 예를 들어, 윈도우즈 운영 체제 중에 새로운 하드웨어 장치가 첨가될 경우, 로딩하고자 하는 커널 모듈은 해당 하드웨어 장치의 장치 드라이버일 수 있다. 로딩하고자 하는 커널 모듈은 리눅스(Linux) 커널 중의 LKM(Loadable Kernel Module, 동적으로 로딩 가능한 커널 모듈)을 더 포함할 수 있다.
단계(202), 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정한다.
본 실시예에 있어서, 단계(201)에서 검측된 명령어에 기반하여, 상기 전자 기기는 먼저 상기 명령어가 지시하는 로딩하고자 하는 커널 모듈을 획득하고, 다음, 로딩하고자 하는 커널 모듈의 정보를 판독하여 해당 정보 중에 식별자 정보가 존재하는지 여부를 확정할 수 있다. 여기서, 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것이다.
본 실시예에 있어서, 상기 명령어는 로딩하고자 하는 커널 모듈의 명칭 및/또는 버전 번호를 포함할 수 있다. 로딩하고자 하는 커널 모듈의 명칭 및/또는 버전 번호에 따라, 상기 전자 기기는 도1에 도시된 데이터베이스 서버(107)에서 매칭된 로딩하고자 하는 커널 모듈을 획득할 수 있다. 상기 전자 기기는 먼저 매칭된 로딩하고자 하는 커널 모듈을 저장하는지 여부를 로컬에서 검색할 수도 있다. 로컬 검색이 실패할 경우, 데이터베이스 서버(107)에서 매칭된 로딩하고자 하는 커널 모듈을 더 획득한다. 로딩하고자 하는 커널 모듈의 구체적인 저장 위치는 본 출원에서 제한되지 않는다.
본 실시예에 있어서, 상기 전자 기기는 로딩하고자 하는 커널 모듈 중에 프로그램 콘텐츠와 무관한 정보가 존재하는지 여부에 따라 해당 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정할 수 있다. 로딩하고자 하는 커널 모듈 중에 프로그램 콘텐츠와 무관한 정보가 존재할 경우, 해당 정보를 식별자 정보로 확정할 수 있다. 예를 들어, ELF 파일의 ELF 헤더(ELF Header) 앞에 "$"가 구비된다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 상기 전자 기기는 미리 저장된 식별자 정보 집합 중의 식별자 정보 각각에 대해 로딩하고자 하는 커널 모듈 중에서 매칭을 더 진행할 수 있다. 로딩하고자 하는 커널 모듈 중에 식별자 정보 집합 중의 식별자 정보와 매칭된 정보가 존재할 경우, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것은 확정될 수 있다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 식별자 정보는 캐릭터, 캐릭터 스트링 또는 데이터 세그먼트 등과 같은 임의적인 것일 수 있다. 예를 들어, 리눅스(Linux) 시스템의 커널 모듈은 ELF(Executable and Linking Format, 실행 가능한 대상 파일) 형식이고, 따라서, 식별자 정보는 로딩하고자 하는 커널 모듈 내의 하나의 단독적 섹션일 수 있으며, 해당 섹션의 명칭은 "foo" 또는 "bar" 등일 수 있다. 동시에, 섹션 내의 데이터는 임의적인 것일 수 있다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 상기 커널 모듈 로딩 방법은 커널 모듈 중에서 식별자 정보를 생성하는 단계를 더 포함할 수 있다. 여기서, 도5는 본 출원에 따른 커널 모듈 로딩 방법 중의 식별자 정보를 생성하는 단계의 일 실시예의 흐름도을 나타낸다. 상기 전자 기기는 해당 프로세스에 따라 커널 모듈 중에서 식별자 정보를 생성할 수 있다.
단계(203), 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩한다.
본 실시예에 있어서, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 단계(202)에서 확정하는 것에 응답하여, 상기 전자 기기는 로딩 프로그램을 실행하여 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩할 수 있다. 상기 전자 기기가 로딩하고자 하는 커널 모듈을 로딩하는 과정이 본 출원에서 제한되지 않는 것을 이해할 것이다. 로딩 과정은 직접적인 로딩일 수 있고, 호환되는 로딩일 수도 있다. 예를 들어, 상기 전자 기기는 관련 호환성 패키지를 설치함으로써 로딩하고자 하는 커널 모듈에 대한 로딩 조작을 구현할 수 있다. 또한, 로딩하고자 하는 커널 모듈 중 식별자 정보의 위치는 본 출원에서 제한되지 않는다.
본 실시예에 있어서, 상기 전자 기기의 운영 체제 중에는 다수의 버전의 커널이 저장될 수 있다. 이때에, 상기 명령어는 목표 커널의 버전 번호를 더 포함할 수 있다. 전자 기기는 목표 커널의 버전 번호에 따라 목표 커널을 선택할 수 있다. 또한, 상기 전자 기기 중에는 여러 가지의 운영 체제도 저장될 수 있고, 각 운영 체제는 다수의 버전의 커널을 포함한다. 이때에, 상기 명령어는 목표 커널의 명칭 및 버전 번호를 더 포함할 수 있다. 상기 전자 기기는 목표 커널의 명칭 및 버전 번호에 따라 목표 커널을 선택할 수 있다.
도3을 더 참조하면, 도3은 본 실시예에 따른 커널 모듈 로딩 방법의 응용 시나리오의 개략도이다. 도3의 응용 시나리오에 있어서, 사용자는 먼저 단말기를 통해 명칭이 A인 로딩하고자 하는 커널 모듈(LKM)을 2.6번전의 리눅스(Linux) 커널 중에 로딩하는 명령어를 개시한다(첨부기호 301으로 표시됨). 다음, 서버는 해당 명령어를 검측한 후(첨부기호 302로 표시됨), 데이터베이스 서버에서 로딩하고자 하는 커널 모듈(즉, 상기 LKM "A")을 획득하고(첨부기호 303으로 표시됨), 해당 모듈에서 특수한 명칭 “_attribute_((section("bar")))”를 가진 데이터 세그먼트를 발견하여 LKM "A" 중에 식별자 정보가 존재하는 것을 확정한다(첨부기호 304로 표시됨). 다음, 상기 서버는 "insmod" 명령을 시작하고 “init_module” 함수를 호출하여 LKM "A"를 2.6번전의 리눅스(Linux) 커널 중에 로딩하도록 시작한다(첨부기호 305로 표시됨).
본 출원의 상기 실시예에서 제공하는 방법에 있어서, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정함으로써 식별자 정보가 존재하는 로딩하고자 하는 커널 모듈은 목표 커널 중에 로딩된다. 이로써, 로딩 검증을 거치지 않는 상황에서 로딩하고자 하는 커널 모듈을 목표 커널에 로딩할 수 있는 과정은 구현된다. 따라서, 목표 커널의 버전이 많으므로 로딩하고자 하는 커널 모듈에 대해 컴파일 또는 수정을 반복적으로 진행하는 경우는 감소하게 된다. 동일한 운영 체제의 상이한 버전의 목표 커널 중 로딩하고자 하는 커널 모듈의 적용 범위는 확장되어 유지 관리 비용을 감소시키는 데 편리하도록 한다.
도4를 더 참조하면, 도4는 커널 모듈 로딩 방법의 다른 일 실시예의 프로세스(400)를 도시한다. 해당 방법의 프로세스(400)는 아래와 같은 단계들을 포함한다.
단계(401), 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측한다.
본 실시예에 있어서, 커널 모듈 로딩 방법을 실행하는 전자 기기(예를 들어, 도1에 도시된 서버(105))는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위하고 사용자가 단말기 장치를 통해 발송한 명령어를 검측할 수 있다.
단계(402), 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정한다.
본 실시예에 있어서, 상기 전자 기기는 상기 명령어를 검측한 후, 로딩하고자 하는 커널 모듈의 정보를 획득하고 해당 정보 중에 식별자 정보가 존재하는지 여부를 확정할 수 있다. 여기서, 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것이다. 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재할 경우, 단계(403a)는 수행되고, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않을 경우, 단계(403b)는 수행된다.
단계(403a), 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 식별자 정보에 대해 보안성 검증을 진행한다.
본 실시예에 있어서, 상기 전자 기기는 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정한 후, 식별자 정보에 대해 보안성 검증을 진행할 수 있다. 예를 들어, 안티바이러스 소프트웨어는 시작되어 식별자 정보에 대해 바이러스의 검측 및 제거를 진행한다. 식별자 정보 중에 바이러스가 존재하지 않으면, 해당 식별자 정보가 보안성 검증을 통과함을 나타낸다. 또한, 식별자 정보는 식별자 정보의 출처를 지시하기 위한 정보를 더 포함할 수 있다. 예를 들어, 식별자 정보를 컴파일하는 유닛, 부서 또는 개인의 명칭(이름) 또는 번호 등을 더 포함할 수 있다. 이때에, 전자 기기는 식별자 정보의 출처를 미리 저장된 출처 정보 집합 중의 출처 정보와 매칭할 수 있다. 매칭이 성공하면, 해당 식별자 정보가 보안성 검증을 통과함을 나타낸다. 식별자 정보가 보안성 검증을 통과할 경우, 단계(404)는 수행된다.
단계(403b), 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행한다.
본 실시예에 있어서, 상기 전자 기기는 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않는 것을 확정한 후, 로딩 검증 프로그램을 시작하여 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행할 수 있다. 여기서, 로딩 검증의 정보는 로딩하고자 하는 커널 모듈의 커널 버전, CRC 등을 포함하나, 이에 한정되지 않는다. 여기서의 로딩 검증은 종래 기술 중의 커널 모듈을 로딩하는 검증 메커니즘과 동일하고, 여기서 더 설명하지 않기로 한다. 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 단계(404)는 수행되고, 로딩하고자 하는 커널 모듈이 로딩 검증을 통과하지 않을 경우, 단계(405)는 수행된다.
단계(404), 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩한다.
본 실시예에 있어서, 상기 전자 기기는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하여 목표 커널이 로딩하고자 하는 커널 모듈 중의 프로그램을 실행하도록 할 수 있다. 이때의 로딩 과정은 종래 기술 중의 커널 모듈의 로딩 과정과 동일하고, 여기서 더 설명하지 않기로 한다.
단계(405), 로딩 결과에 따라 프롬프트 정보를 발송한다.
본 실시예에 있어서, 로딩하고자 하는 커널 모듈의 로딩 결과에 따라, 상기 전자 기기는 유선 연결 또는 무선 연결의 방식을 통해 사용자가 사용하는 단말기에 프롬프트 정보를 발송할 수 있다. 로딩하고자 하는 커널 모듈이 이미 목표 커널 중에 로딩된 경우, 로딩 성공의 프롬프트 정보는 발송된다. 로딩하고자 하는 커널 모듈이 로딩 검증을 통과하지 않을 경우, 로딩 실패의 프롬프트 정보는 발송된다.
도4에서 보이는 바와 같이, 도2에 대응되는 실시예와 비교시, 본 실시예 중의 커널 모듈 로딩 방법의 프로세스(400)는, 식별자 정보에 대해 보안성 검증을 진행하는 단계와 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않을 경우 로딩 검증을 진행하는 단계를 강조한다. 이로써, 본 실시예에 설명된 방안은 더 전면적이고 완전한 커널 모듈 로딩 과정을 구현하여, 커널 모듈의 적용성을 강화시키는 동시에 시스템의 유지 관리 비용을 감소시키고 커널 모듈 로딩 과정의 안전성을 향상시키는 데 편리하도록 할 수 있다.
도5를 더 참조하면, 도5는 커널 모듈 로딩 방법 중의 식별자 정보를 생성하는 단계의 일 실시예의 프로세스(500)를 도시한다. 해당 단계는 아래와 같은 단계들을 포함한다.
단계(501), 커널 모듈을 획득하고, 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정한다.
본 실시예에 있어서, 상기 전자 기기(예를 들어, 도1에 도시된 서버(105))는 먼저 로컬 또는 데이터베이스 서버(107)에서 커널 모듈을 획득할 수 있다. 다음, 해당 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정한다. 여기서, 기설정된 조건은 해당 커널 모듈이 해당 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함할 수 있다. 예를 들어, 커널 모듈 A 중에 커널 B가 지원하지 않는 함수, 데이터 구조 등이 존재하지 않을 경우, 커널 모듈이 기설정된 조건을 만족하는 것은 확정될 수 있다.
단계(502), 커널 모듈이 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 커널 모듈 중에서 식별자 정보를 생성한다.
본 실시예에 있어서, 커널 모듈이 기설정된 조건을 만족하는 것이 확정된 후, 상기 전자 기기는 기설정된 방법을 통해 커널 모듈 중에서 식별자 정보를 생성할 수 있다. 예를 들어, 명령어를 컴파일함으로써 커널 모듈 중에 정보는 첨가되어 식별자 정보를 생성한다. 또는, 쓰기 툴을 이용하여 커널 모듈 중의 정보는 수정되어 식별자 정보를 생성한다.
본 실시예에 있어서, 매번 생성된 식별자 정보는 동일할 수 있고, 상이할 수도 있다. 예를 들어, 식별자 정보는 커널 모듈이 적용된 운영 체제에 대응될 수 있다. 예를 들어, 윈도우즈 운영 체제의 커널 모듈에 대응되는 식별자 정보는 1이며, 리눅스 운영 체제의 커널 모듈에 대응되는 식별자 정보는 2이다. 이리하여, 커널 모듈의 분류 및 관리는 편리하게 된다.
도5에 도시된 실시예에 있어서, 커널 모듈에 대해 선별을 진행함으로써 기설정된 조건을 만족하는 커널 모듈은 선택되고, 따라서, 임의의 커널 모듈에 대해 진행된 식별자 정보 생성 단계는 회피된다. 동시에, 기설정된 조건을 만족하는 커널 모듈 중에서 식별자 정보를 생성함으로써, 커널 모듈은 한 번만 컴파일 또는 수정되어 동일한 운영 체제의 상이한 버전의 커널 중에 로딩될 수 있는 것은 구현될 수 있다. 따라서, 커널 모듈에 대한 컴파일 또는 수정의 횟수는 감소하여 커널 모듈의 적용 범위를 확장하는 데 더 편리하도록 한다.
도6을 더 참조하면, 상기 각 도면에 도시된 방법의 구현으로서, 본 출원은 커널 모듈 로딩 장치의 일 실시예를 제공한다. 해당 장치의 실시예는 도2에 도시된 방법의 실시예에 대응되고, 해당 장치는 구체적으로 다양한 전자 기기에 적용될 수 있다.
도6에 도시된 바와 같이, 본 실시예의 커널 모듈 로딩 장치(600)는 검측 유닛(601), 식별자 정보 확정 유닛(602) 및 제1 로딩 유닛(603)을 포함한다. 검측 유닛(601)은 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하도록 구성된다. 식별자 정보 확정 유닛(602)은, 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하도록 구성된다. 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것이다. 제1 로딩 유닛(603)은 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 구성된다.
본 실시예에 있어서, 검측 유닛(601), 식별자 정보 확정 유닛(602) 및 제1 로딩 유닛(603)의 구체적인 구현 과정 및 이들의 유익한 효과는 도2의 실시예 중 대응된 단계(201), 단계(202) 및 단계(203)에 관한 설명을 참조할 수 있으며, 여기서 더 설명하지 않기로 한다.
본 실시예의 일부 선택 가능한 구현 방식에 있어서, 제1 로딩 유닛(603)은, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 식별자 정보에 대해 보안성 검증을 진행하고; 식별자 정보가 보안성 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 더 구성될 수 있다.
본 실시예의 일부 선택 가능한 구현 방식에 있어서, 해당 장치(600)는, 커널 모듈을 획득하고, 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정하도록 구성된 획득 유닛(미도시); 및 커널 모듈이 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 커널 모듈 중에서 식별자 정보를 생성하도록 구성된 생성 유닛(미도시)을 더 포함할 수 있다.
본 실시예의 일부 선택 가능한 구현 방식에 있어서, 기설정된 조건은 커널 모듈이 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함한다.
본 실시예의 일부 선택 가능한 구현 방식에 있어서, 해당 장치(600)는, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행하도록 구성된 검증 유닛(미도시); 및 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 구성된 제2 로딩 유닛(미도시)을 더 포함할 수 있다.
이하 도7을 참조하면, 도7은 본 출원의 실시예에 따른 서버를 구현하기에 적합한 컴퓨터 시스템(700)의 구조적 개략도를 나타낸다. 도7에 도시된 서버는 단지 예시일 뿐, 본 출원의 실시예의 기능 및 사용 범위에 대해 그 어떠한 한정을 진행하여서는 아니된다.
도7에 도시된 바와 같이, 컴퓨터 시스템(700)은 중앙 처리 유닛(701; CPU, Central Processing Unit)을 포함하되, CPU(701)는 읽기 전용 메모리 장치(702; ROM, Read Only Memory)에 저장된 프로그램 또는 저장부(708)로부터 랜덤 액세스 메모리 장치(703; RAM, Random Access Memory)에 로딩된 프로그램에 의해 다양한 동작과 처리를 실행할 수 있다. RAM(703)에는 시스템(700)을 작동하기에 필요한 각종 프로그램 및 데이터가 더 저장되어 있다. CPU(701), ROM(702) 및 RAM(703)은 버스(704)를 통해 서로 연결된다. 입력/출력(I/O; Input/Output) 인터페이스(705)도 버스(704)에 연결된다.
I/O 인터페이스(705)에 연결되는 부재로서, 키보드, 마우스 등을 포함하는 입력부(706)와, 예커내 음극선관(CRT; Cathode Ray Tube), 액정 표시 장치(LCD; Liquid Crystal Display) 등 및 스피커 등을 포함하는 출력부(607)와, 하드 드라이버 등을 포함하는 저장부(708)와, 예컨대, LAN(Local Area Network) 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(709)가 포함된다. 통신부(709)는 인터넷과 같은 네트워크를 통해 통신 처리를 실행한다. 구동부(710)도 수요에 따라 I/O 인터페이스(705)에 연결된다. 자기 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 장치 등과 같은 착탈 가능한 매체(711)는 이러한 매체로부터 판독된 컴퓨터 프로그램을 수요에 따라 저장부(708)에 설치하도록 수요에 따라 구동부(710)에 설치된다.
특히, 본 개시의 실시예에 의하면, 흐름도를 참조하여 설명한 상기 과정들은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 예를 들어, 본 개시의 실시예는 컴퓨터 프로그램 제품을 포함하고, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독 가능한 매체에 탑재된 컴퓨터 프로그램을 포함하며, 해당 컴퓨터 프로그램은 흐름도에 도시된 방법을 실행하기 위한 컴퓨터 코드를 포함한다. 이러한 실시예에 있어서, 해당 컴퓨터 프로그램은 통신부(709)를 경유하여 네트워크로부터 다운로드되어 설치될 수 있고 및/또는 착탈 가능한 매체(711)로부터 설치될 수 있다. 해당 컴퓨터 프로그램이 중앙 처리 유닛(701; CPU)에 의해 실행될 경우, 본 출원의 방법에 한정된 상기 기능들을 실행한다. 본 출원의 상기 컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능한 신호 매체, 컴퓨터 판독 가능한 저장 매체 또는 상기 양자의 임의의 조합일 수 있음을 유의하여야 한다. 컴퓨터 판독 가능한 저장 매체는 전기, 자기, 광학, 전자기, 적외선 또는 반도체의 시스템, 장치, 소자 또는 상기의 임의의 조합일 수 있으나, 이에 한정되지 않는다. 컴퓨터 판독 가능한 저장 매체의 더욱 구체적인 예시는 하나 또는 다수의 와이어를 구비하는 전기적 연결, 휴대용 컴퓨터 자기 디스크, 하드 디스크, 랜덤 액세스 메모리 장치(RAM), 읽기 전용 메모리 장치(ROM), 소거 및 프로그램 가능한 읽기 전용 메모리 장치(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 읽기 전용 메모리 장치(CD-ROM), 광 메모리 장치, 자기 메모리 장치 또는 상기의 임의의 적합한 조합을 포함할 수 있으나, 이에 한정되지 않는다. 본 출원에 있어서, 컴퓨터 판독 가능한 저장 매체는 프로그램을 포함하거나 저장하는 임의의 유형 매체일 수 있으며, 해당 프로그램은 명령어 실행 시스템, 장치 또는 소자에 의해 사용되거나 이와 결합하여 사용될 수 있다. 본 출원에 있어서, 컴퓨터 판독 가능한 신호 매체는 베이스 밴드에서 전파되거나 캐리어의 일부분으로서 전파되는 데이터 신호를 포함할 수 있으며, 여기서, 데이터 신호에는 컴퓨터 판독 가능한 프래그램 코드가 탑재된다. 이와 같이 전파되는 데이터 신호는 여러가지 형식으로 구현될 수 있으며, 전자기 신호, 광 신호 또는 상기의 임의의 적합한 조합을 포함하나, 이에 한정되지 않는다. 컴퓨터 판독 가능한 신호 매체는 컴퓨터 판독 가능한 저장 매체를 제외한 임의의 컴퓨터 판독 가능한 매체일 수도 있으며, 해당 컴퓨터 판독 가능한 매체는 명령어 실행 시스템, 장치 또는 소자에 의해 사용되거나 이와 결합하여 사용되는 프로그램을 발송, 전파 또는 전송할 수 있다. 컴퓨터 판독 가능한 매체에 포함된 프로그램 코드는 임의의 적당한 매체를 이용하여 전송될 수 있으며, 무선, 전선, 케이블, RF 등 또는 상기의 임의의 적합한 조합을 포함하나, 이에 한정되지 않는다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 방법, 장치 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 동작을 도시하였다. 이러한 방면에 있어서, 흐름도 또는 블록도 중의 각 블록은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 해당 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령어를 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능들은 첨부된 도면에 표기된 순서와 다른 순서로 수행될 수도 있음을 유의하여야 한다. 예를 들어, 순차적으로 표시된 두개의 블록은 실제적으로 거의 동시에 실행될 수 있고, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 결정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록들의 조합은 규정된 기능 또는 동작을 실행하는 하드웨어 기반의 전용 시스템으로 구현되거나, 전용 하드웨어와 컴퓨터 명령어의 조합으로 구현될 수 있음을 유의하여야 한다.
본 출원의 실시예에 설명된 관련 유닛들은 소프트웨어의 방식으로 구현될 수 있거나, 또는 하드웨어의 방식으로 구현될 수도 있다. 설명된 유닛들은 프로세서에 설치될 수도 있으며, 예를 들어, 프로세서가 검측 유닛, 식별자 정보 확정 유닛, 및 제1 로딩 유닛을 포함한다고 설명될 수 있다. 여기서, 이러한 유닛들의 명칭은 일부의 경우에 있어서 해당 유닛 자체에 대한 한정을 구성하지 않으며, 예를 들어, 검측 유닛은 "로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하는 검측 유닛"으로 설명될 수도 있다.
다른 일 방면에 있어서, 본 출원은 컴퓨터 판독 가능한 매체를 더 제공하며, 해당 컴퓨터 판독 가능한 매체는 상기 실시예에 설명된 서버에 포함되는 것일 수 있으며, 또는 해당 서버에 설치되는 것이 아니라 별도로 제공된 것일 수도 있다. 상기 컴퓨터 판독 가능한 매체에는 하나 또는 다수의 프로그램이 탑재되고, 상기 하나 또는 다수의 프로그램이 해당 서버에 의해 실행될 경우, 해당 서버로 하여금, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하며; 명령어를 검측하는 것에 응답하여, 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하되, 식별자 정보는 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 나타내기 위한 것이며; 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하도록 한다.
이상의 설명은 단지 본 출원의 비교적 바람직한 실시예 및 운용한 기술적 원리에 대한 설명이다. 본 출원에 관련된 발명의 범위가 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라, 본 발명의 주지를 벗어나지 않는 한 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 이루어진 기타 기술적 방안들도 포함되어야 함을 해당 기술분야의 당업자는 이해할 것이다. 예를 들어, 상기 특징들과 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징을 서로 대체하여 이루어진 기술적 방안도 포함된다.

Claims (12)

  1. 검측 유닛으로 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하는 단계;
    식별자 정보 확정 유닛으로, 상기 명령어를 검측하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하되, 상기 식별자 정보는 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 것을 나타내기 위한 것인 단계; 및
    제1 로딩 유닛으로, 상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 단계,
    커널 모듈 중에서 식별자 정보를 생성하는 단계를 포함하고,
    상기 커널 모듈 중에서 식별자 정보를 생성하는 단계는,
    획득 유닛으로 커널 모듈을 획득하고, 상기 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정하는 단계; 및
    생성 유닛으로 상기 커널 모듈이 상기 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 상기 커널 모듈 중에서 식별자 정보를 생성하는 단계를 포함하며,
    상기 기설정된 조건은 상기 커널 모듈이 상기 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함하는 것을 특징으로 하는 커널 모듈 로딩 방법.
  2. 제1항에 있어서,
    상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 단계는,
    상기 제1 로딩 유닛으로, 상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 식별자 정보에 대해 보안성 검증을 진행하는 단계; 및
    상기 제1 로딩 유닛으로, 상기 식별자 정보가 보안성 검증을 통과할 경우, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 단계를 포함하는 것을 특징으로 하는 커널 모듈 로딩 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    검증 유닛으로 상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행하는 단계; 및
    상기 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 제2 로딩 유닛으로 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 단계를 포함하는 것을 특징으로 하는 커널 모듈 로딩 방법.
  6. 로딩하고자 하는 커널 모듈을 목표 커널 중에 로딩하는 것을 지시하기 위한 명령어를 검측하도록 구성된 검측 유닛;
    상기 명령어를 검측하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈 중에 식별자 정보가 존재하는지 여부를 확정하도록 구성되되, 상기 식별자 정보는 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하는 것을 나타내기 위한 것인 식별자 정보 확정 유닛;
    상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하도록 구성된 제1 로딩 유닛;
    커널 모듈을 획득하고, 상기 커널 모듈이 기설정된 조건을 만족하는지 여부를 확정하도록 구성된 획득 유닛; 및
    상기 커널 모듈이 상기 기설정된 조건을 만족하는 것을 확정하는 것에 응답하여, 기설정된 방법을 통해 상기 커널 모듈 중에서 식별자 정보를 생성하도록 구성된 생성 유닛을 포함하며,
    상기 기설정된 조건은 상기 커널 모듈이 상기 커널 모듈을 로딩하고자 하는 커널과 서로 호환되는 것을 포함하는 것을 특징으로 하는 커널 모듈 로딩 장치.
  7. 제6항에 있어서,
    상기 제1 로딩 유닛은,
    상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하는 것을 확정하는 것에 응답하여, 상기 식별자 정보에 대해 보안성 검증을 진행하고;
    상기 식별자 정보가 보안성 검증을 통과할 경우, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하도록 더 구성되는 것을 특징으로 하는 커널 모듈 로딩 장치.
  8. 삭제
  9. 삭제
  10. 제6항에 있어서,
    상기 로딩하고자 하는 커널 모듈 중에 상기 식별자 정보가 존재하지 않는 것을 확정하는 것에 응답하여, 상기 로딩하고자 하는 커널 모듈에 대해 로딩 검증을 진행하도록 구성된 검증 유닛; 및
    상기 로딩하고자 하는 커널 모듈이 로딩 검증을 통과할 경우, 상기 로딩하고자 하는 커널 모듈을 상기 목표 커널 중에 로딩하도록 구성된 제2 로딩 유닛을 더 포함하는 것을 특징으로 하는 커널 모듈 로딩 장치.
  11. 하나 또는 다수의 프로세서; 및
    하나 또는 다수의 프로그램을 저장하기 위한 저장 장치를 포함하되,
    상기 하나 또는 다수의 프로그램은 상기 하나 또는 다수의 프로세서에 의해 실행될 경우, 상기 하나 또는 다수의 프로세서가 제1항, 제2항 및 제5항 중의 임의의 한 항의 방법을 구현하도록 하는 서버.
  12. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체에 있어서,
    상기 프로그램은 프로세서에 의해 실행될 경우 제1항, 제2항 및 제5항 중의 임의의 한 항의 방법을 구현하는 컴퓨터 판독 가능한 저장 매체.
KR1020197007612A 2017-02-22 2017-09-05 커널 모듈 로딩 방법 및 장치 KR102244281B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710096226.XA CN106815031B (zh) 2017-02-22 2017-02-22 内核模块加载方法和装置
CN201710096226.X 2017-02-22
PCT/CN2017/100473 WO2018153052A1 (zh) 2017-02-22 2017-09-05 内核模块加载方法和装置

Publications (2)

Publication Number Publication Date
KR20190039279A KR20190039279A (ko) 2019-04-10
KR102244281B1 true KR102244281B1 (ko) 2021-04-23

Family

ID=59111540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197007612A KR102244281B1 (ko) 2017-02-22 2017-09-05 커널 모듈 로딩 방법 및 장치

Country Status (6)

Country Link
US (1) US11237844B2 (ko)
EP (1) EP3499364B1 (ko)
JP (1) JP6913746B2 (ko)
KR (1) KR102244281B1 (ko)
CN (1) CN106815031B (ko)
WO (1) WO2018153052A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815031B (zh) 2017-02-22 2020-03-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置
CN109271203B (zh) * 2017-07-14 2022-03-15 龙芯中科(西安)科技有限公司 内核加载方法、装置及存储介质
CN109543400B (zh) * 2017-09-21 2022-08-09 华为技术有限公司 一种动态管理内核节点的方法和设备
CN110389786B (zh) * 2018-04-20 2022-10-14 伊姆西Ip控股有限责任公司 内核管理方法、电子设备和计算机可读存储介质
CN111241602B (zh) * 2018-11-29 2023-05-02 阿里巴巴集团控股有限公司 Fpga的ip核加载方法、装置及电子设备
CN110865852B (zh) * 2019-11-19 2023-06-30 北京字节跳动网络技术有限公司 网页组件的加载方法、装置、电子设备、及存储介质
CN111767089A (zh) * 2020-06-28 2020-10-13 北京百度网讯科技有限公司 加载文件的方法、装置、设备以及存储介质
CN111930444B (zh) * 2020-10-16 2021-02-05 鹏城实验室 处理器核验证的指令耦合装置、方法、设备及存储介质
CN112363726A (zh) * 2020-11-10 2021-02-12 北京麟卓信息科技有限公司 一种内核模块的跨内核版本编译方法及系统
CN113709154B (zh) * 2021-08-25 2023-08-15 平安国际智慧城市科技股份有限公司 浏览器安全处理方法、装置、计算机设备及存储介质
CN113703813A (zh) * 2021-09-07 2021-11-26 北京天融信网络安全技术有限公司 内核升级方法、装置、设备及计算机可读存储介质
CN116243971B (zh) * 2023-05-10 2023-07-28 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220343A1 (en) 2006-03-01 2007-09-20 Sun Microsystems, Inc. Kernel module compatibility validation
CN105787352A (zh) * 2014-12-18 2016-07-20 中兴通讯股份有限公司 一种可执行模块的提供、加载方法及终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003222657A1 (en) * 2002-04-17 2003-11-03 Computer Associates Think, Inc. Apparatus and method for modifying a kernel module to run on multiple kernel versions
US9032390B2 (en) * 2008-07-29 2015-05-12 Qualcomm Incorporated Framework versioning
US8245243B1 (en) * 2009-07-06 2012-08-14 Xilinx, Inc. Transforming device drivers to improve efficiency
US8527989B2 (en) * 2010-07-12 2013-09-03 International Business Machines Corporation Tracking loading and unloading of kernel extensions in isolated virtual space
CN104283860A (zh) * 2013-07-10 2015-01-14 全联斯泰克科技有限公司 一种基于代码签名的elf文件鉴别方法和装置
CN104679532B (zh) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 内核模块加载方法和装置
CN105183530A (zh) * 2015-11-03 2015-12-23 浪潮(北京)电子信息产业有限公司 基于k-unix内核的模块加载方法及系统
CN105893085A (zh) * 2016-03-30 2016-08-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置
CN106815031B (zh) * 2017-02-22 2020-03-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220343A1 (en) 2006-03-01 2007-09-20 Sun Microsystems, Inc. Kernel module compatibility validation
CN105787352A (zh) * 2014-12-18 2016-07-20 中兴通讯股份有限公司 一种可执行模块的提供、加载方法及终端

Also Published As

Publication number Publication date
EP3499364B1 (en) 2022-04-06
KR20190039279A (ko) 2019-04-10
CN106815031A (zh) 2017-06-09
JP6913746B2 (ja) 2021-08-04
WO2018153052A1 (zh) 2018-08-30
US11237844B2 (en) 2022-02-01
US20190213014A1 (en) 2019-07-11
EP3499364A1 (en) 2019-06-19
EP3499364A4 (en) 2019-12-04
JP2019532414A (ja) 2019-11-07
CN106815031B (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
KR102244281B1 (ko) 커널 모듈 로딩 방법 및 장치
US10127057B2 (en) Method and apparatus for dynamically implementing application function
WO2017049800A1 (zh) 检测应用漏洞代码的方法和装置
CN109766082B (zh) 应用程序页面跳转的方法和装置
US10083111B2 (en) Test script configuration spreadsheet
GB2494738A (en) Detecting security vulnerabilities in web applications using a black-box tester
CN108920359B (zh) 应用程序的测试方法、装置、存储介质和电子装置
US11294798B2 (en) Method and system for context based testing of software application vulnerabilities
CN110188159B (zh) 征信数据接入方法、装置、设备及计算机可读存储介质
CN107797854A (zh) 交易文件处理方法、装置、存储介质和计算机设备
US20220334959A1 (en) Method and apparatus for generating software test reports
CN108197024B (zh) 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN110928571A (zh) 业务程序开发方法和装置
CN107368339B (zh) 容器入口程序运行方法、系统、设备及存储介质
CN110874475A (zh) 漏洞挖掘方法、漏洞挖掘平台及计算机可读存储介质
CN110334023B (zh) 一种应用于网站的测试流程确定方法和装置
CN114626061A (zh) 网页木马检测的方法、装置、电子设备及介质
KR102165037B1 (ko) 코드 커버리지 측정 장치, 코드 커버리지 측정 장치의 코드 커버리지 측정 방법, 및 코드 커버리지 측정 시스템
CN112395194B (zh) 一种接入测试平台的方法和装置
CN105871927B (zh) 微端的自动登录方法及装置
JP5299625B2 (ja) 操作支援装置、操作支援方法、及びプログラム
US11030087B2 (en) Systems and methods for automated invocation of accessibility validations in accessibility scripts
CN113885876A (zh) 一种参数校验方法、装置、存储介质及计算机系统
CN110618934A (zh) 前端自动化测试调试方法、装置及计算机可读存储介质
CN113535568B (zh) 应用部署版本的验证方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant