WO2022259311A1 - Debugging device, debugging method, and program - Google Patents

Debugging device, debugging method, and program Download PDF

Info

Publication number
WO2022259311A1
WO2022259311A1 PCT/JP2021/021567 JP2021021567W WO2022259311A1 WO 2022259311 A1 WO2022259311 A1 WO 2022259311A1 JP 2021021567 W JP2021021567 W JP 2021021567W WO 2022259311 A1 WO2022259311 A1 WO 2022259311A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
debugging
debugged
unit
developer terminal
Prior art date
Application number
PCT/JP2021/021567
Other languages
French (fr)
Japanese (ja)
Inventor
ジヴ グラスバーグ
シュメール ウル
ラン レアー
イレズ ケイナン
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2021/021567 priority Critical patent/WO2022259311A1/en
Publication of WO2022259311A1 publication Critical patent/WO2022259311A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data

Definitions

  • the present invention relates to debugging technology in software development.
  • Non-Patent Document 1 discloses a technique for masking personal information and highly confidential data among the data acquired from the database. However, the technology disclosed in Non-Patent Document 1 cannot be applied to code development.
  • a debugging device placed in a remote environment with respect to a developer terminal, a debugging unit that performs an encryption process on a part of the code to be debugged that should be concealed, and displays the code to be debugged that has undergone the encryption process on the developer terminal;
  • a code execution unit for executing code to be debugged is provided.
  • developers can debug code without disclosing confidential information to developers.
  • FIG. 1 is an overall configuration diagram of a system according to an embodiment of the present invention
  • FIG. 1 is a configuration diagram of a debugging device
  • FIG. It is a figure which shows an example of a display screen. It is a figure which shows an example of a processing sequence. It is a figure which shows the hardware configuration example of an apparatus.
  • the code to be developed is executed not on the developer terminal (local computer) but on-premises (such as the facility of the code owner) or on a cloud device. Debug your code using the debugger found in .
  • the confidential part e.g. (code part, confidential variable, secret value, secret parameter, etc.) is predetermined, and the confidential part is It is not displayed on the developer terminal.Since the code is executed remotely to the developer terminal, the developer cannot directly inspect the code and override it (overwrite the behavior etc.) etc. No. Also, since we are planning to log the debugging process, it is also possible to track the information displayed to the developer for audit purposes.
  • FIG. 1 shows a system configuration example in this embodiment.
  • the system according to this embodiment has a configuration in which a debugging device 100 and a developer terminal 300 are connected via a network 200 such as the Internet.
  • the debugging device 100 includes functions necessary for developers to debug.
  • the function includes the function of executing code to be debugged (developed).
  • the DB (database) 10 may be referred to or the external device 20 may be accessed.
  • the developer terminal 300 cannot access these DB 10 and external device 20 .
  • the debugging device 100 is a device installed remotely with respect to the developer terminal 300 .
  • the debugging device 100 may be an on-premise device (eg, a device installed at the code owner's facility) or a cloud device (virtual machine).
  • the developer terminal 300 is, for example, a general PC (personal computer).
  • the developer terminal 300 by simply clicking a link for accessing the debugging device 100, it is possible to connect to the debugging device 100 and use the debugging device 100. Therefore, the developer can shorten the setup time for debugging.
  • FIG. 2 shows a configuration example of the debug device 100.
  • the debug device 100 includes a debug section 110, a code execution section 120, and a storage section .
  • the debug unit 110, the code execution unit 120, and the storage unit 130 may be physically provided in one device, or may be provided in separate devices (network-connected devices). good.
  • the debug unit 110 displays a debug screen on the developer terminal 300 , receives code corrections and the like from the developer terminal 300 through the debug screen, and stores the corrected code in the storage unit 130 .
  • the code execution unit 120 reads and executes the code (code to be debugged) from the storage unit 130, and stores the execution result in the storage unit 130.
  • the debug unit 110 displays the code execution result on the debug screen of the developer terminal 300 .
  • the debug unit 110 can perform debugging operations such as step-in, step-over, addition of breakpoints, view of variables, etc., which are executed by general debuggers, based on operations on the developer terminal 300 .
  • the code execution unit 120 compiles the code as necessary and then executes the code.
  • the storage unit 130 stores confidential definition information, code to be debugged, data referenced by the code, execution results of the code, and the like. Furthermore, the debug unit 110 stores debug processing logs (eg, code and data displayed on the developer terminal 300) in the storage unit 130 in chronological order, so that the storage unit 130 also stores such information. be.
  • debug processing logs eg, code and data displayed on the developer terminal 300
  • the owner of the code defines the secret part of the code and stores the defined secret information in the storage unit 130 .
  • any part of the code to be kept secret may be determined arbitrarily. For example, all code outside the scope of the module developed by the developer from the developer terminal 300 may be kept secret. Also, a part of the lines of the module consisting of multiple lines may be kept confidential, or a plurality of lines may be kept confidential. Also, specific variables, specific functions, specific values (eg, arguments of functions, number of iterations, parameters during calculation), etc. may be secret. Also, certain data referenced by the code may be confidential.
  • the debug unit 110 transmits the code (which may contain data) to be displayed on the developer terminal 300 to the developer terminal 300 .
  • the debugging unit 110 performs encryption processing on portions to be concealed (eg, partial lines of code, values of variables containing confidential information, etc.), and transmits the code after the encryption processing to the developer terminal 300. do.
  • Fig. 3 shows an example screen of the developer terminal 300 displaying the code that has undergone the confidentiality process.
  • confidential information is masked in black.
  • a secret value in the code e.g., a defense secret or trade secret parameter value
  • compute some function with it as input and substitute the value of that function for the secret value. may be displayed.
  • the secret value may be replaced with a symbolic value and displayed.
  • the secret value denotes the secret value as X.
  • the original value of X secret value
  • the value after the multiplication is displayed as "2*X”.
  • the debug unit 110 records in the storage unit 130 a log related to debug processing executed based on an operation on the developer terminal 300 .
  • the debug unit 110 records the debug sessions conducted by the developer on the developer terminal 300 in the storage unit 130, for example, in chronological order.
  • the debug unit 110 records in the storage unit 130 commands input by the developer and code and data displayed on the developer terminal 300 as a result of execution of the commands.
  • the code and data masked and displayed on the developer terminal 300 may be stored in the storage unit 130 in association with the operation performed by the developer in the debug session.
  • the debug unit 110 can be used to mask code displayed on the developer terminal 300 according to an operation performed by the developer for debugging or a command input for debugging, and the result of the operation or the result of execution of the command. and data is recorded in the storage unit 130 .
  • Such an unauthorized identification operation may be performed by the debug unit 110 or by an external device.
  • FIG. 4 shows an example of a processing sequence.
  • the debug unit 100 of the debug device 100 transmits a screen (eg, FIG. 3) including code to be debugged to the developer terminal 300.
  • FIG. 3 shows a screen including code to be debugged to the developer terminal 300.
  • the developer modifies the code on the developer terminal 300.
  • the modified code and execution command are transmitted from the developer terminal 300 to the debugging device 100 .
  • the modified code is executed by the code execution unit 120.
  • the execution result is transmitted from the debug unit 110 to the developer terminal 300, and the execution result is displayed on the developer terminal 300 in S106. If the execution result contains data to be concealed, the debugging unit 110 performs concealment processing on the data, and transmits the execution result including the concealed data to the developer terminal 300. .
  • Debugging device 100 can be realized, for example, by causing a computer to execute a program.
  • This computer may be a physical computer or a virtual machine on the cloud.
  • the debugging device 100 can be realized by executing a program corresponding to the processing performed by the debugging device 100 using hardware resources such as a CPU and memory built into the computer.
  • the above program can be recorded in a computer-readable recording medium (portable memory, etc.), saved, or distributed. It is also possible to provide the above program through a network such as the Internet or e-mail.
  • FIG. 5 is a diagram showing a hardware configuration example of the computer.
  • the computer of FIG. 5 has a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are interconnected by a bus BS.
  • a program that implements the processing in the computer is provided by a recording medium 1001 such as a CD-ROM or memory card, for example.
  • a recording medium 1001 such as a CD-ROM or memory card
  • the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000 .
  • the program does not necessarily need to be installed from the recording medium 1001, and may be downloaded from another computer via the network.
  • the auxiliary storage device 1002 stores installed programs, as well as necessary files and data.
  • the memory device 1003 reads and stores the program from the auxiliary storage device 1002 when a program activation instruction is received.
  • the CPU 1004 implements functions related to the debugging device 100 according to programs stored in the memory device 1003 .
  • the interface device 1005 is used as an interface for connecting to a network, various external devices, and the like.
  • a display device 1006 displays a GUI (Graphical User Interface) or the like by a program.
  • An input device 1007 is composed of a keyboard, a mouse, buttons, a touch panel, or the like, and is used to input various operational instructions.
  • the output device 1008 outputs the calculation result.
  • This specification discloses at least a debugging device, a debugging method, and a program for each of the following items.
  • a debugging device placed in a remote environment with respect to the developer terminal, a debugging unit that performs an encryption process on a part of the code to be debugged that should be concealed, and displays the code to be debugged that has undergone the encryption process on the developer terminal;
  • a debug device comprising: a code execution unit that executes code to be debugged;
  • the debugging unit as the ciphering process, masking the portion to be concealed; calculating a function with the portion to be concealed as an input;
  • the debugging device according to claim 1, wherein at least one of replacing the portion to be concealed with a symbol is performed.
  • (Section 3) The debug device according to claim 1 or 2, wherein the debug unit performs a concealment process on specific data processed by a code to be debugged.
  • (Section 4) 4. The debugging device according to any one of items 1 to 3, wherein the debug unit records a log regarding debug processing executed based on an operation on the developer terminal.
  • (Section 5) A debugging method executed by a debugging device placed in a remote environment with respect to a developer terminal, a step of performing an encryption process on a part of the code to be debugged that should be concealed, and displaying the encrypted code to be debugged on the developer terminal; A debugging method comprising: executing code to be debugged.
  • (Section 6) A program for causing a computer to function as each unit in the debugging device according to any one of items 1 to 4.
  • DB database
  • External device 100
  • Debug device 110
  • Debug unit 120
  • Storage unit 200
  • Drive device 1001
  • Recording medium 1002
  • Auxiliary storage device 1003
  • Memory device 1004
  • CPU 1005 interface device
  • 1006 display device 1007 input device 1008 output device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A debugging device disposed in an environment remote from a developer terminal, said debugging device being provided with: a debugging unit which performs a concealment process on a to-be-concealed portion of a code to be debugged, and displays, on the developer terminal, the code to be debugged on which the concealment process has been performed; and a code execution unit which executes the code to be debugged.

Description

デバッグ装置、デバッグ方法、及びプログラムDebugging device, debugging method, and program
 本発明は、ソフトウェア開発におけるデバッグの技術に関連するものである。 The present invention relates to debugging technology in software development.
 デバッグはソフトウェア開発の重要なプロセスである。一方、近年、クラウドソーシング等により、プログラムのコードの開発の全部又は一部をアウトソースするケースが増加している。 Debugging is an important process in software development. On the other hand, in recent years, cases of outsourcing all or part of program code development through crowdsourcing and the like are increasing.
 このように、コードの開発をアウトソースする際には、アウトソース先の開発者には秘密性の高いコードやデータを秘匿しながら、デバッグやモジュール開発を行えるようにする必要がある。 In this way, when outsourcing code development, it is necessary to be able to debug and develop modules while hiding highly confidential code and data from the outsourced developer.
 非特許文献1には、データベースから取得されるデータのうち、個人情報や機密性の高いデータをマスキングする技術が開示されている。しかし、非特許文献1に開示された技術は、コードの開発に適用することができない。 Non-Patent Document 1 discloses a technique for masking personal information and highly confidential data among the data acquired from the database. However, the technology disclosed in Non-Patent Document 1 cannot be applied to code development.
 本発明は上記の点に鑑みてなされたものであり、秘匿すべき情報を開発者に開示することなく、開発者がコードのデバッグを行うことを可能とする技術を提供することを目的とする。 SUMMARY OF THE INVENTION It is an object of the present invention to provide a technology that enables a developer to debug code without disclosing confidential information to the developer. .
 開示の技術によれば、開発者端末に対してリモートの環境に配置されるデバッグ装置であって、
 デバッグ対象のコードにおける秘匿すべき部分に対して秘匿処理を施し、秘匿処理を施したデバッグ対象のコードを前記開発者端末に表示するデバッグ部と、
 デバッグ対象のコードを実行するコード実行部と
 を備えるデバッグ装置が提供される。
According to the disclosed technology, a debugging device placed in a remote environment with respect to a developer terminal,
a debugging unit that performs an encryption process on a part of the code to be debugged that should be concealed, and displays the code to be debugged that has undergone the encryption process on the developer terminal;
A code execution unit for executing code to be debugged is provided.
 開示の技術によれば、秘匿すべき情報を開発者に開示することなく、開発者がコードのデバッグを行うことが可能となる。 According to the disclosed technology, developers can debug code without disclosing confidential information to developers.
本発明の実施の形態におけるシステムの全体構成図である。1 is an overall configuration diagram of a system according to an embodiment of the present invention; FIG. デバッグ装置の構成図である。1 is a configuration diagram of a debugging device; FIG. 表示画面の一例を示す図である。It is a figure which shows an example of a display screen. 処理シーケンスの一例を示す図である。It is a figure which shows an example of a processing sequence. 装置のハードウェア構成例を示す図である。It is a figure which shows the hardware configuration example of an apparatus.
 以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。以下の説明では、特に断らない限り、「コード」と「プログラム」は同義のものとして用いている。つまり、下記の説明に登場する「コード」を「プログラム」に置き換えてもよい。また、下記の説明において、「秘匿する」を「秘密にする」と言い換えてもよい。 An embodiment (this embodiment) of the present invention will be described below with reference to the drawings. The embodiments described below are merely examples, and embodiments to which the present invention is applied are not limited to the following embodiments. In the following description, unless otherwise specified, the terms "code" and "program" are used synonymously. That is, "code" appearing in the following description may be replaced with "program". Also, in the following description, "to keep confidential" may be replaced with "to keep confidential".
 (実施の形態の概要)
 本実施の形態では、開発対象のコードは、開発者端末(ローカルコンピュータ)ではなく、オンプレミス(コードの保有者の施設等)あるいはクラウド上の装置で実行され、開発者は、開発者端末からリモートにあるデバッガを使用してコードをデバッグする。
(Overview of Embodiment)
In this embodiment, the code to be developed is executed not on the developer terminal (local computer) but on-premises (such as the facility of the code owner) or on a cloud device. Debug your code using the debugger found in .
 コードあるいはデータ(コードにより処理するデータ等)において、秘匿すべき部分(例:(コードの部分、秘密にすべき変数、秘密の値、秘密のパラメータ等)は予め定められ、秘匿すべき部分は開発者端末には表示されない。コードは、開発者端末に対してリモートで実行されるので、開発者は、コードを直接に検査してこれをオーバーライド(動作を上書きすること等)すること等はできない。また、デバッグ処理に係るログを記録することとしているので、監査のために、開発者に表示された情報をトラックすることも可能である。 In the code or data (data processed by the code, etc.), the confidential part (e.g. (code part, confidential variable, secret value, secret parameter, etc.) is predetermined, and the confidential part is It is not displayed on the developer terminal.Since the code is executed remotely to the developer terminal, the developer cannot directly inspect the code and override it (overwrite the behavior etc.) etc. No. Also, since we are planning to log the debugging process, it is also possible to track the information displayed to the developer for audit purposes.
 (システム構成例)
 図1に、本実施の形態におけるシステム構成例を示す。図1に示すように、本実施の形態に係るシステムは、デバッグ装置100と開発者端末300が、インターネット等のネットワーク200を介して接続された構成を有する。
(System configuration example)
FIG. 1 shows a system configuration example in this embodiment. As shown in FIG. 1, the system according to this embodiment has a configuration in which a debugging device 100 and a developer terminal 300 are connected via a network 200 such as the Internet.
 デバッグ装置100は、開発者がデバッグを行うために必要な機能を含む。当該機能には、デバッグ対象(開発対象)のコードを実行する機能が含まれる。コードを実行するにあたっては、DB(データベース)10を参照したり、外部装置20にアクセスしたりしてもよい。開発者端末300は、これらのDB10や外部装置20にアクセスすることはできない。 The debugging device 100 includes functions necessary for developers to debug. The function includes the function of executing code to be debugged (developed). In executing the code, the DB (database) 10 may be referred to or the external device 20 may be accessed. The developer terminal 300 cannot access these DB 10 and external device 20 .
 デバッグ装置100は、開発者端末300に対してリモートに設置される装置である。例えば、デバッグ装置100は、オンプレミスの装置(例:コードの保有者の施設に設置された装置)であってもよいし、クラウド上の装置(仮想マシン)であってもよい。開発者端末300は、例えば一般的なPC(パーソナルコンピュータ)である。 The debugging device 100 is a device installed remotely with respect to the developer terminal 300 . For example, the debugging device 100 may be an on-premise device (eg, a device installed at the code owner's facility) or a cloud device (virtual machine). The developer terminal 300 is, for example, a general PC (personal computer).
 例えば、開発者端末300において、デバッグ装置100にアクセスするためのリンクをクリックするだけで、デバッグ装置100に接続し、デバッグ装置100を利用することができる。そのため、開発者にとって、デバッグのためのセットアップ時間を短縮できる。 For example, on the developer terminal 300, by simply clicking a link for accessing the debugging device 100, it is possible to connect to the debugging device 100 and use the debugging device 100. Therefore, the developer can shorten the setup time for debugging.
 (デバッグ装置100の構成例)
 図2に、デバッグ装置100の構成例を示す。図2に示すように、デバッグ装置100は、デバッグ部110、コード実行部120、及び記憶部130を備える。なお、デバッグ部110、コード実行部120、及び記憶部130は、物理的に1つの装置内に備えられていてもよいし、それぞれが別々の装置(ネットワーク接続された装置)に備えられてもよい。
(Configuration example of debug device 100)
FIG. 2 shows a configuration example of the debug device 100. As shown in FIG. As shown in FIG. 2, the debug device 100 includes a debug section 110, a code execution section 120, and a storage section . The debug unit 110, the code execution unit 120, and the storage unit 130 may be physically provided in one device, or may be provided in separate devices (network-connected devices). good.
 デバッグ部110は、開発者端末300にデバッグ画面を表示して、開発者端末300からデバッグ画面を通じてコードの修正等を受け付け、修正後のコードを記憶部130に格納する。 The debug unit 110 displays a debug screen on the developer terminal 300 , receives code corrections and the like from the developer terminal 300 through the debug screen, and stores the corrected code in the storage unit 130 .
 また、デバッグ部110からの指示に基づき、コード実行部120は、記憶部130からコード(デバッグ対象のコード)を読み出して実行し、実行結果を記憶部130に格納する。例えば、デバッグ部110は、コードの実行結果を開発者端末300のデバッグ画面上に表示する。 Also, based on an instruction from the debug unit 110, the code execution unit 120 reads and executes the code (code to be debugged) from the storage unit 130, and stores the execution result in the storage unit 130. For example, the debug unit 110 displays the code execution result on the debug screen of the developer terminal 300 .
 なお、デバッグ部110は、開発者端末300における操作に基づいて、ステップイン、ステップオーバー、ブレークポイントの追加、変数のビューなどの一般的なデバッガが実行するデバッグ動作を行うことが可能である。 It should be noted that the debug unit 110 can perform debugging operations such as step-in, step-over, addition of breakpoints, view of variables, etc., which are executed by general debuggers, based on operations on the developer terminal 300 .
 また、上記のコードの実行のために、コード実行部120は、必要に応じてコードのコンパイルを行ってからコードを実行する。 Also, in order to execute the above code, the code execution unit 120 compiles the code as necessary and then executes the code.
 記憶部130には、秘匿の定義情報、デバッグ対象のコード、コードが参照するデータ、コードの実行結果等が格納される。更に、デバッグ部110は、デバッグ処理のログ(例:開発者端末300に表示したコードやデータ)を、例えば時系列で記憶部130に記憶するので、記憶部130にはこれらの情報も記憶される。 The storage unit 130 stores confidential definition information, code to be debugged, data referenced by the code, execution results of the code, and the like. Furthermore, the debug unit 110 stores debug processing logs (eg, code and data displayed on the developer terminal 300) in the storage unit 130 in chronological order, so that the storage unit 130 also stores such information. be.
 (情報秘匿に関する動作)
 次に、デバッグ部110が実行する情報の秘匿処理に関する動作について説明する。以下で説明する処理のいずれか1つを行ってもよいし、いずれか複数を組み合わせて行ってもよい。
(Operation related to confidentiality of information)
Next, the operation related to information confidentiality processing executed by the debug unit 110 will be described. Any one of the processes described below may be performed, or a plurality of them may be combined.
 情報秘匿に関する動作の前提として、コードの保有者が、コードにおける秘密の部分を定義し、定義した秘密に係る情報を記憶部130に格納する。 As a premise for operations related to information secrecy, the owner of the code defines the secret part of the code and stores the defined secret information in the storage unit 130 .
 コードのどの部分を秘匿するかは任意に決めてよく、例えば、開発者端末300から開発者が開発したモジュールの範囲外のコードは全て秘密であってもよい。また、複数行からなるモジュールのうちの一部の行を秘密としてもよいし、複数部分の行を秘密としてもよい。また、特定の変数、特定の関数、特定の値(例:関数の引数、繰り返し数、計算中のパラメータ)等が秘密であってもよい。また、コードにより参照される特定のデータが秘密であってもよい。 Any part of the code to be kept secret may be determined arbitrarily. For example, all code outside the scope of the module developed by the developer from the developer terminal 300 may be kept secret. Also, a part of the lines of the module consisting of multiple lines may be kept confidential, or a plurality of lines may be kept confidential. Also, specific variables, specific functions, specific values (eg, arguments of functions, number of iterations, parameters during calculation), etc. may be secret. Also, certain data referenced by the code may be confidential.
 デバッグ部110は、開発者端末300に表示するコード(データが含まれていてもよい)を、開発者端末300に送信する。その際に、デバッグ部110は、秘匿すべき部分(例:コードの一部の行、秘密情報を含む変数の値等)に秘匿処理を施し、秘匿処理後のコードを開発者端末300に送信する。 The debug unit 110 transmits the code (which may contain data) to be displayed on the developer terminal 300 to the developer terminal 300 . At this time, the debugging unit 110 performs encryption processing on portions to be concealed (eg, partial lines of code, values of variables containing confidential information, etc.), and transmits the code after the encryption processing to the developer terminal 300. do.
 図3に、秘匿処理が行われたコードを表示する開発者端末300の画面例を示す。図3の例では、秘匿される情報が黒塗りでマスキングされて示されている。  Fig. 3 shows an example screen of the developer terminal 300 displaying the code that has undergone the confidentiality process. In the example of FIG. 3, confidential information is masked in black.
 上記のように、秘密の情報を黒塗りで隠すことは一例である。別の例として、コードにおける秘密の値(例えば、国防上の秘密や営業秘密に関するパラメータ値)に対して、それを入力とする何らかの関数を計算し、その関数の値を、秘密の値に代えて表示してもよい。 As mentioned above, blacking out confidential information is an example. As another example, for a secret value in the code (e.g., a defense secret or trade secret parameter value), compute some function with it as input, and substitute the value of that function for the secret value. may be displayed.
 また、秘密の値を、記号(symbolic value)に置き換えて表示してもよい。例えば、秘密の値をXとして示す。秘密の値であるXについて計算を行う場合、Xの元の値(秘密の値)を類推可能な値を表示しないようにする。例えば、Xに2を乗算する場合、乗算後の値を「2*X」として表示する。このように、記号(symbol)を用いることで、実際の値を隠蔽しながら、デバッグのために必要な情報を開発者に表示することが可能である。 Also, the secret value may be replaced with a symbolic value and displayed. For example, denote the secret value as X. When performing calculations on X, which is a secret value, the original value of X (secret value) should not be displayed by analogy. For example, when multiplying X by 2, the value after the multiplication is displayed as "2*X". By using symbols in this way, it is possible to display information necessary for debugging to the developer while hiding the actual values.
 (デバッグセッションの記録について)
 デバッグ部110は、開発者端末300における操作に基づいて実行されたデバッグ処理に関するログを記憶部130に記録する。
(About recording debug sessions)
The debug unit 110 records in the storage unit 130 a log related to debug processing executed based on an operation on the developer terminal 300 .
 すなわち、デバッグ部110は、開発者が開発者端末300上で行ったデバッグセッションを、例えば時系列で記憶部130に記録する。例えば、デバッグ部110は、開発者が入力したコマンド、及びそのコマンドの実行の結果により開発者端末300に表示されたコード及びデータを記憶部130に記録する。 That is, the debug unit 110 records the debug sessions conducted by the developer on the developer terminal 300 in the storage unit 130, for example, in chronological order. For example, the debug unit 110 records in the storage unit 130 commands input by the developer and code and data displayed on the developer terminal 300 as a result of execution of the commands.
 このような記録を行うことで、開発者がデバッグセッションで何をしようとしているかを確認することができる。記録した情報は、バグとコマンド(デバッグタスク)の観点から異常なアクティビティであるかどうかを確認するために使用することができる。 By recording like this, you can see what the developer is trying to do in the debug session. The recorded information can be used to see if there is anomalous activity in terms of bugs and commands (debug tasks).
 また、開発者端末300にマスキングされて表示されたコード及びデータを、開発者がデバッグセッションで実施した操作と関連付けて記憶部130に記憶しても良い。例えば、デバッグ部110は、開発者がデバッグのために行った操作あるいはデバッグのために入力したコマンド、及びその操作の結果あるいはコマンドの実行の結果により開発者端末300にマスキングされて表示されたコード及びデータを記憶部130に記録する。 Also, the code and data masked and displayed on the developer terminal 300 may be stored in the storage unit 130 in association with the operation performed by the developer in the debug session. For example, the debug unit 110 can be used to mask code displayed on the developer terminal 300 according to an operation performed by the developer for debugging or a command input for debugging, and the result of the operation or the result of execution of the command. and data is recorded in the storage unit 130 .
 このような記録を行うことで、開発者が操作したデバッグの結果を、秘密データにアクセスする権限を有する者が確認することも可能となる。 By making such a record, it is possible for a person with authority to access confidential data to check the results of debugging performed by the developer.
 例えば、バグの修正のためではなく、あるコードを実行しようとした行為を検知した場合、秘密データへのアクセスを試みている疑いがある、といったことを自動的に識別することが可能である。このような不正識別動作は、デバッグ部110が行ってもよいし、外部装置が行ってもよい。 For example, if it detects an attempt to execute certain code rather than to fix a bug, it is possible to automatically identify that there is a suspicion of an attempt to access confidential data. Such an unauthorized identification operation may be performed by the debug unit 110 or by an external device.
 (シーケンス例)
 図4に、処理シーケンスの一例を示す。図4の例では、S101において、デバッグ装置100のデバッグ部100は、デバッグの対象となるコードを含む画面(例:図3)を開発者端末300に送信する。
(Sequence example)
FIG. 4 shows an example of a processing sequence. In the example of FIG. 4, in S101, the debug unit 100 of the debug device 100 transmits a screen (eg, FIG. 3) including code to be debugged to the developer terminal 300. FIG.
 S102において、開発者は、開発者端末300上でコードを修正する。S103において、修正後のコードと実行コマンドが、開発者端末300からデバッグ装置100に送信される。 At S102, the developer modifies the code on the developer terminal 300. At S<b>103 , the modified code and execution command are transmitted from the developer terminal 300 to the debugging device 100 .
 S104において、修正後のコードがコード実行部120により実行される。S105において、デバッグ部110から開発者端末300に実行結果が送信され、S106において、実行結果が開発者端末300上に表示される。なお、実行結果に、秘匿すべきデータが含まれる場合には、デバッグ部110は、当該データに対して秘匿処理を行って、秘匿処理後のデータを含む実行結果を開発者端末300に送信する。 In S104, the modified code is executed by the code execution unit 120. In S105, the execution result is transmitted from the debug unit 110 to the developer terminal 300, and the execution result is displayed on the developer terminal 300 in S106. If the execution result contains data to be concealed, the debugging unit 110 performs concealment processing on the data, and transmits the execution result including the concealed data to the developer terminal 300. .
 (装置のハードウェア構成例)
 デバッグ装置100は、例えば、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、クラウド上の仮想マシンであってもよい。
(Hardware configuration example of the device)
Debugging device 100 can be realized, for example, by causing a computer to execute a program. This computer may be a physical computer or a virtual machine on the cloud.
 すなわち、デバッグ装置100は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、デバッグ装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。 That is, the debugging device 100 can be realized by executing a program corresponding to the processing performed by the debugging device 100 using hardware resources such as a CPU and memory built into the computer. The above program can be recorded in a computer-readable recording medium (portable memory, etc.), saved, or distributed. It is also possible to provide the above program through a network such as the Internet or e-mail.
 図5は、上記コンピュータのハードウェア構成例を示す図である。図5のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。 FIG. 5 is a diagram showing a hardware configuration example of the computer. The computer of FIG. 5 has a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are interconnected by a bus BS.
 当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。 A program that implements the processing in the computer is provided by a recording medium 1001 such as a CD-ROM or memory card, for example. When the recording medium 1001 storing the program is set in the drive device 1000 , the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000 . However, the program does not necessarily need to be installed from the recording medium 1001, and may be downloaded from another computer via the network. The auxiliary storage device 1002 stores installed programs, as well as necessary files and data.
 メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、デバッグ装置100に係る機能を実現する。インタフェース装置1005は、ネットワークや各種外部装置等に接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。 The memory device 1003 reads and stores the program from the auxiliary storage device 1002 when a program activation instruction is received. The CPU 1004 implements functions related to the debugging device 100 according to programs stored in the memory device 1003 . The interface device 1005 is used as an interface for connecting to a network, various external devices, and the like. A display device 1006 displays a GUI (Graphical User Interface) or the like by a program. An input device 1007 is composed of a keyboard, a mouse, buttons, a touch panel, or the like, and is used to input various operational instructions. The output device 1008 outputs the calculation result.
 (実施の形態の効果)
 以上説明したように、本実施の形態に係る技術により、秘密を含むコードを開発者端末ではなくクラウドやオンプレミス環境でのみリモートで実行し、予め定めた秘匿すべきコードやデータについては、開発者向けに加工して表示することで、アウトソース先の開発者が秘密性の高いコードやデータの内容を見ることなく、デバッグや開発を実施することが可能となる。
(Effect of Embodiment)
As described above, with the technology according to the present embodiment, code containing secrets is remotely executed only in a cloud or on-premises environment instead of a developer terminal, and predetermined code and data that should be kept secret are managed by the developer. By processing and displaying it for , outsourced developers can debug and develop without seeing the contents of highly confidential code and data.
 (実施の形態のまとめ)
 本明細書には、少なくとも下記各項のデバッグ装置、デバッグ方法、及びプログラムが開示されている。
(第1項)
 開発者端末に対してリモートの環境に配置されるデバッグ装置であって、
 デバッグ対象のコードにおける秘匿すべき部分に対して秘匿処理を施し、秘匿処理を施したデバッグ対象のコードを前記開発者端末に表示するデバッグ部と、
 デバッグ対象のコードを実行するコード実行部と
 を備えるデバッグ装置。
(第2項)
 前記デバッグ部は、前記秘匿処理として、
 前記秘匿すべき部分に対してマスキングを行うこと、
 前記秘匿すべき部分を入力とする関数を計算すること、
 前記秘匿すべき部分を記号に置き換えること
 のうちの少なくともいずれか1つを行う
 第1項に記載のデバッグ装置。
(第3項)
 前記デバッグ部は、デバッグ対象のコードにより処理される特定のデータに対して秘匿処理を実行する
 第1項又は第2項に記載のデバッグ装置。
(第4項)
 前記デバッグ部は、前記開発者端末における操作に基づいて実行されたデバッグ処理に関するログを記録する
 第1項ないし第3項のうちいずれか1項に記載のデバッグ装置。
(第5項)
 開発者端末に対してリモートの環境に配置されるデバッグ装置が実行するデバッグ方法であって、
 デバッグ対象のコードにおける秘匿すべき部分に対して秘匿処理を施し、秘匿処理を施したデバッグ対象のコードを前記開発者端末に表示するステップと、
 デバッグ対象のコードを実行するステップと
 を備えるデバッグ方法。
(第6項)
 コンピュータを、第1項ないし第4項のうちいずれか1項に記載のデバッグ装置における各部として機能させるためのプログラム。
(Summary of embodiment)
This specification discloses at least a debugging device, a debugging method, and a program for each of the following items.
(Section 1)
A debugging device placed in a remote environment with respect to the developer terminal,
a debugging unit that performs an encryption process on a part of the code to be debugged that should be concealed, and displays the code to be debugged that has undergone the encryption process on the developer terminal;
A debug device comprising: a code execution unit that executes code to be debugged;
(Section 2)
The debugging unit, as the ciphering process,
masking the portion to be concealed;
calculating a function with the portion to be concealed as an input;
The debugging device according to claim 1, wherein at least one of replacing the portion to be concealed with a symbol is performed.
(Section 3)
3. The debug device according to claim 1 or 2, wherein the debug unit performs a concealment process on specific data processed by a code to be debugged.
(Section 4)
4. The debugging device according to any one of items 1 to 3, wherein the debug unit records a log regarding debug processing executed based on an operation on the developer terminal.
(Section 5)
A debugging method executed by a debugging device placed in a remote environment with respect to a developer terminal,
a step of performing an encryption process on a part of the code to be debugged that should be concealed, and displaying the encrypted code to be debugged on the developer terminal;
A debugging method comprising: executing code to be debugged.
(Section 6)
A program for causing a computer to function as each unit in the debugging device according to any one of items 1 to 4.
 以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes can be made within the scope of the gist of the present invention described in the claims. It is possible.
10 DB(データベース)
20 外部装置
100 デバッグ装置
110 デバッグ部
120 コード実行部
130 記憶部
200 ネットワーク
300 開発者端末
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
10 DB (database)
20 External device 100 Debug device 110 Debug unit 120 Code execution unit 130 Storage unit 200 Network 300 Developer terminal 1000 Drive device 1001 Recording medium 1002 Auxiliary storage device 1003 Memory device 1004 CPU
1005 interface device 1006 display device 1007 input device 1008 output device

Claims (6)

  1.  開発者端末に対してリモートの環境に配置されるデバッグ装置であって、
     デバッグ対象のコードにおける秘匿すべき部分に対して秘匿処理を施し、秘匿処理を施したデバッグ対象のコードを前記開発者端末に表示するデバッグ部と、
     デバッグ対象のコードを実行するコード実行部と
     を備えるデバッグ装置。
    A debugging device placed in a remote environment with respect to the developer terminal,
    a debugging unit that performs an encryption process on a part of the code to be debugged that should be concealed, and displays the code to be debugged that has undergone the encryption process on the developer terminal;
    A debug device comprising: a code execution unit that executes code to be debugged;
  2.  前記デバッグ部は、前記秘匿処理として、
     前記秘匿すべき部分に対してマスキングを行うこと、
     前記秘匿すべき部分を入力とする関数を計算すること、
     前記秘匿すべき部分を記号に置き換えること
     のうちの少なくともいずれか1つを行う
     請求項1に記載のデバッグ装置。
    The debugging unit, as the ciphering process,
    masking the portion to be concealed;
    calculating a function with the portion to be concealed as an input;
    The debugging device according to claim 1, wherein at least one of replacing the part to be concealed with a symbol is performed.
  3.  前記デバッグ部は、デバッグ対象のコードにより処理される特定のデータに対して秘匿処理を実行する
     請求項1又は2に記載のデバッグ装置。
    3. The debugging device according to claim 1, wherein the debugging unit executes encryption processing on specific data processed by a code to be debugged.
  4.  前記デバッグ部は、前記開発者端末における操作に基づいて実行されたデバッグ処理に関するログを記録する
     請求項1ないし3のうちいずれか1項に記載のデバッグ装置。
    4. The debugging device according to any one of claims 1 to 3, wherein said debugging unit records a log relating to debugging processing executed based on an operation on said developer terminal.
  5.  開発者端末に対してリモートの環境に配置されるデバッグ装置が実行するデバッグ方法であって、
     デバッグ対象のコードにおける秘匿すべき部分に対して秘匿処理を施し、秘匿処理を施したデバッグ対象のコードを前記開発者端末に表示するステップと、
     デバッグ対象のコードを実行するステップと
     を備えるデバッグ方法。
    A debugging method executed by a debugging device placed in a remote environment with respect to a developer terminal,
    a step of performing an encryption process on a part of the code to be debugged that should be concealed, and displaying the encrypted code to be debugged on the developer terminal;
    A debugging method comprising: executing code to be debugged.
  6.  コンピュータを、請求項1ないし4のうちいずれか1項に記載のデバッグ装置における各部として機能させるためのプログラム。 A program for causing a computer to function as each unit in the debugging device according to any one of claims 1 to 4.
PCT/JP2021/021567 2021-06-07 2021-06-07 Debugging device, debugging method, and program WO2022259311A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/021567 WO2022259311A1 (en) 2021-06-07 2021-06-07 Debugging device, debugging method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/021567 WO2022259311A1 (en) 2021-06-07 2021-06-07 Debugging device, debugging method, and program

Publications (1)

Publication Number Publication Date
WO2022259311A1 true WO2022259311A1 (en) 2022-12-15

Family

ID=84425020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/021567 WO2022259311A1 (en) 2021-06-07 2021-06-07 Debugging device, debugging method, and program

Country Status (1)

Country Link
WO (1) WO2022259311A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007125911A1 (en) * 2006-04-24 2007-11-08 Panasonic Corporation Data processing device, method, program, integrated circuit, and program generating device
JP2009129326A (en) * 2007-11-27 2009-06-11 Canon Inc Software development system, access restriction method for the same, server device, program, and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007125911A1 (en) * 2006-04-24 2007-11-08 Panasonic Corporation Data processing device, method, program, integrated circuit, and program generating device
JP2009129326A (en) * 2007-11-27 2009-06-11 Canon Inc Software development system, access restriction method for the same, server device, program, and storage medium

Similar Documents

Publication Publication Date Title
US8613080B2 (en) Assessment and analysis of software security flaws in virtual machines
US20150046909A1 (en) System, Method, and Apparatus for Automatic Recording and Replaying of Application Executions
Ceccato et al. Understanding the behaviour of hackers while performing attack tasks in a professional setting and in a public challenge
US20170103192A1 (en) Secure code delivery
CN104685477A (en) Application security testing
Rivera-Ortiz et al. Automated modelling of security incidents to represent logging requirements in software systems
US20240143739A1 (en) Intelligent obfuscation of mobile applications
Riad et al. Plugin-Based Tool for Teaching Secure Mobile Application Development.
Shi et al. An experience report on producing verifiable builds for large-scale commercial systems
Rivera-Ortiz et al. Towards automated logging for forensic-ready software systems
WO2022259311A1 (en) Debugging device, debugging method, and program
Dong et al. A quantitative evaluation of privilege separation in web browser designs
Aloraini et al. Evaluating state-of-the-art free and open source static analysis tools against buffer errors in android apps
Popchev et al. Auditing blockchain smart contracts
Lugou et al. Toward a methodology for unified verification of hardware/software co-designs
Ruhroth et al. Versioning and evolution requirements for model-based system development
Kanani et al. Obfuscation: maze of code
Zhang et al. Ffuzz: Towards full system high coverage fuzz testing on binary executables
US11252178B1 (en) System and method for automating security configuration standards assessments and mitigations
Thakkar Heartbleed: A formal methods perspective
Ferry et al. Development and operation of trustworthy smart iot systems: The enact framework
Soriano-Salvador et al. Detecting and bypassing frida dynamic function call tracing: exploitation and mitigation
Peldszus et al. UMLsecRT: Reactive Security Monitoring of Java Applications with Round-Trip Engineering
Malek et al. Security and software engineering
Pieczul et al. The evolution of a security control

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21944992

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE