WO2018230471A1 - Virus monitoring program - Google Patents

Virus monitoring program Download PDF

Info

Publication number
WO2018230471A1
WO2018230471A1 PCT/JP2018/022072 JP2018022072W WO2018230471A1 WO 2018230471 A1 WO2018230471 A1 WO 2018230471A1 JP 2018022072 W JP2018022072 W JP 2018022072W WO 2018230471 A1 WO2018230471 A1 WO 2018230471A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
virus
processing
time
data
Prior art date
Application number
PCT/JP2018/022072
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 ロゴヴィスタ株式会社
Publication of WO2018230471A1 publication Critical patent/WO2018230471A1/en

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Definitions

  • the present invention relates to a program for measuring the processing time of each instruction and monitoring the execution of the virus according to the abnormal state when a virus enters the monitoring target program and starts up.
  • processing order instruction principle and “data value non-verification usage principle” are the fundamental principles of the conventional programming technique, and that is the reason why cyber attacks cannot be avoided. Therefore, with conventional programming methods, there is no countermeasure once a malicious program (called a virus program, called a virus for short) has entered a legitimate program. There is no other way but to stop.
  • timer set time when an appropriately set time (referred to as timer set time) elapses, the timer transmits an interrupt signal. Since the CPU of the computer has an interrupt signal processing function, the vector program, which is the original program, is temporarily stopped, all data is saved in a register and stored, and then the interrupt program is started. The interrupt program operates by interrupting somewhere in the original program, and determines whether the completion flag of process A is on or off.
  • the timer setting time must be set to be short so as not to give time to turn on the completion flag of process A by returning to the original program after the virus has made a malicious action within that time. Basically, it is desirable that the minimum time is within a range exceeding the time required for the reading process and the time for turning on the process completion flag.
  • the interrupt program is used, but there is also a method for regulating the execution time of the process A. See Figure 2-1.
  • a program instruction is used that “if processing A ends within a certain time, it proceeds to the next processing as normal, and if it does not end within a certain time, it proceeds to a designated program”. If process A does not finish within a certain time, it is judged that the state is because the virus was executed after the normal reading process and time was consumed, a warning was issued, and the scenario function program was urgently stopped. To do.
  • a virus it is determined whether or not a virus has occurred by determining whether or not the vector is completed within a certain period of time (same as the timer setting time). See FIG.
  • a coordinate function in the scenario function “If vector A ends within a certain period of time, it proceeds to the next process as normal, and if it does not end within a certain period of time, it proceeds to the specified program.” You can use this command.
  • the specified program is given a function to issue a warning and make an emergency stop of the scenario function. In this case, if the virus has a function of returning to the original program after startup, it is difficult to capture the virus as described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Provided is a virus monitoring program for detecting activation of a virus. A virus is a program that is activated when read to carry out malicious behavior. A program consists of statements prescribing individual processes, and when those individual processes are executed, values of variables (data) required for the relevant process are necessarily read. When a virus is included in this data, the virus is activated, and damage occurs. The activated virus requires time to carry out the harmful action. Accordingly, if execution of the program is returned from the virus to the original program, the execution time is longer than the time required when executing the relevant process in a normal state (with no virus present). Thus, a virus is detected by appropriately setting a fixed amount of time and determining whether the relevant process has ended when that time has elapsed.

Description

ウィルスの監視プログラムVirus monitoring program
本発明は、監視対象プログラムにウィルスが侵入しそれが起動した際に、個々の命令の処理時間を計測しその異常状態によってウィルスの実行を監視するそのプログラムに関する。 The present invention relates to a program for measuring the processing time of each instruction and monitoring the execution of the virus according to the abnormal state when a virus enters the monitoring target program and starts up.
サイバー攻撃は既に深刻な段階に来ている。高度の技術を持つハッカーはあらゆるコンピュータシステムの中に侵入しそのデータを盗み、改ざんすることが出来る。多くの機関や企業の情報は既に被害にあっている。しかも被害にあっている事実を認知していないことも多い。従来のプログラミング手法ではこの危機を回避することは出来ない。以下に、下記の目次の通り、従来のプログラミング手法を説明し、その手法では全てのサイバー攻撃を回避することはできない理由、及び、シナリオ関数プログラムの手法を説明し、その手法で多くのサイバー攻撃に対抗できる理由を説明する。
目次
1.従来のプログラミング手法の2大特徴
2.従来のプログラミング手法におけるウィルス対策
3.シナリオ関数によるウィルスの無力化
4.シナリオ関数のウィルス対応方法
Cyber attacks are already at a serious stage. Sophisticated hackers can infiltrate any computer system, steal its data, and tamper with it. Information from many institutions and companies has already been damaged. Moreover, they often do not recognize the fact that they are injured. Conventional programming techniques cannot avoid this crisis. The following table describes the conventional programming method, explains why it is not possible to avoid all cyber attacks, explains the method of scenario function programming, and many cyber attacks using that method. Explain why you can fight
Table of contents 1. Two major features of conventional programming techniques 2. Anti-virus measures in conventional programming methods 3. Disabling viruses with scenario functions Scenario function virus handling
1.従来のプログラミング手法の2大特徴
従来のプログラム手法においては、その中に含まれる個々の処理(計算、条件判定、読取、書出し等)のために必要な数値(オペランド)は、個々の処理の実行の前に当然存在していなければならない。従って処理の順序は重要であり、その順序が間違わないように人が順序を考え、それをプログラムでコンピュータに指示している。処理順序の指示の仕方は2通りある。1番目は、プログラムにおいて上から下に向かって各行毎に書かれた処理方法を書かれた順番通りに処理する方法である。その順番で処理させたいのであれば特に何も指示しなくても自動的に次々に処理されて行く。
1. Two major features of the conventional programming method In the conventional programming method, the numerical values (operands) required for individual processing (calculation, condition determination, reading, writing, etc.) included in the processing are executed by the individual processing. Of course it must exist before. Therefore, the order of processing is important, and a person considers the order so that the order is not mistaken, and instructs the computer by a program. There are two ways to specify the processing order. The first is a method of processing the processing method written for each line from top to bottom in the program in the order written. If you want them to be processed in that order, they are automatically processed one after another without any special instruction.
処理順序の指示の仕方の2番目は、上から下に書かれた順序通りではなく、処理方法が書かれた行番号(メモリの番地)に飛んでそこに書かれた処理を実行するように人がプログラムでコンピュータに指示する方法である。例えばGOTO 100行目のように指示する。或いは
if ~(条件)(例:X>Y)
then処理A (例:A=B+C)
else処理B (例:P=Q-R)
の場合には、条件が是であれば次の行が処理されるが、否であればelseが書かれた行に飛んでそこの処理を実行するようにプログラムで指示する。
いずれにしても処理順序は人がプログラムによって指示しなければならない。言い換えればプログラムで指示されていれば、指示された通りの場所に書かれている処理方法を自動的に実行するのである。これを処理順序指示原理と呼ぶ。
従って、例えばサイバー攻撃によってウィルスプログラムが或る行の次に挿入されれば、実行はその行に書かれたウィルスプログラムに自動的に移行してしまうのである。
また、例えばバッファーオーバーフローによって飛び先のアドレス(リターンアドレス)がウィルスプログラムの番地に変更されれば、実行はそのウィルスプログラムに自動的に移行してしまうのである。要は、コンピュータは正規の指示であろうとなかろうとお構いなく指示通りに忠実に動いてしまうのである。
The second way of specifying the processing order is not to follow the order written from top to bottom, but to jump to the line number (memory address) where the processing method is written and execute the processing written there. A method in which a person instructs a computer by a program. For example, instruct GOTO 100th line. Or
if ~ (condition) (Example: X> Y)
then processing A (Example: A = B + C)
else processing B (Example: P = QR)
In this case, if the condition is right, the next line is processed. If not, the program instructs the program to jump to the line where else is written and execute the process.
In any case, the processing order must be instructed by the person by the program. In other words, if it is instructed by the program, the processing method written in the place as instructed is automatically executed. This is called the processing order instruction principle.
Therefore, if a virus program is inserted next to a certain line, for example, by a cyber attack, execution automatically shifts to the virus program written on that line.
Also, for example, if the jump address (return address) is changed to the address of a virus program due to buffer overflow, execution automatically shifts to that virus program. In short, the computer will behave exactly as instructed, regardless of whether it is a legitimate instruction.
従来のプログラミング手法にはもう1つ顕著な特徴がある。それは、データ領域に値があれば、それが正しく生成された値なのか、サイバー攻撃によって生成された値なのかを検証することなくその値を正しいとして処理に使ってしまうことである。これをデータ値の無検証使用原理と呼ぶ。 There is another notable feature of traditional programming techniques. That is, if there is a value in the data area, it is used as a correct value without verifying whether it is a correctly generated value or a value generated by a cyber attack. This is called the unverified usage principle of data values.
これらの2つの特徴、即ち上記の「処理順序指示原理」と「データ値の無検証使用原理」、が従来のプログラミング手法の根本原理であり、それこそがサイバー攻撃を回避できない原因である。従って、従来のプログラミング手法では、一度正規プログラムに悪意あるプログラム(ウィルスプログラムという。略してウィルスという)が侵入した後では対策がないので、サイバー攻撃の対策としては、侵入する前にウィルスの侵入を阻止する以外に方法がない。 These two features, ie, the above-mentioned “processing order instruction principle” and “data value non-verification usage principle” are the fundamental principles of the conventional programming technique, and that is the reason why cyber attacks cannot be avoided. Therefore, with conventional programming methods, there is no countermeasure once a malicious program (called a virus program, called a virus for short) has entered a legitimate program. There is no other way but to stop.
2.従来のプログラミング手法におけるウィルス対策
ウィルスの侵入阻止はどのようにするのであろうか。まずウィルスであることを識別しなければならない。ウィルスはプログラムであるから過去にウィルスと認定されたウィルスプログラムについては、そのプログラムの特徴(ビットのパターンという)が公的に登録されてパターンリスト即ち指名手配リストが作成され頒布されているので、サーバーやパソコンへ送信される全てのデータについて受信する直前にそのデータのパターンを調べ前記のパターンリストと照合して合致するデータがあればその侵入を阻止することが出来る。しかし、この方法は指名手配されていない新型のウィルスには効果がない。
そこで更に、送信されてくるプログラムの内容を調べて悪さをしないかをチェックする。更に、Windowsやインターネットソフトウェア、各種のアプリ、或いはプログラミング言語等々の判明している脆弱性を利用して侵入を試みていないかをチェックする。その他多種類の方法でウィルスの侵入を阻止する対策を講じている。これらの対策を実行するソフトウェアをファイアウォールと呼ぶ。
2. How will anti-virus virus intrusion prevention be done using conventional programming methods? First, it must be identified as a virus. Since a virus is a program, since a virus program that has been recognized as a virus in the past has been publicly registered with the characteristics of the program (called a bit pattern), a pattern list, that is, a wanted list is created and distributed. Immediately before receiving all data transmitted to the server or personal computer, the pattern of the data is examined, and if there is matching data by comparing with the pattern list, the intrusion can be prevented. However, this method has no effect on new viruses that are not wanted.
Therefore, the contents of the transmitted program are further checked to see if they are bad. In addition, it checks if there is an attempt to intrude using known vulnerabilities such as Windows, Internet software, various applications, or programming languages. Other various measures are taken to prevent the invasion of viruses. Software that implements these measures is called a firewall.
しかし、ウィルスの新型は理論的には無限にあるので全てのウィルスには対応できないし、そもそも悪意かどうかを判定する事は困難であるし、上記脆弱性は人が作るソフトウェアである限り絶滅することは困難であるのでウィルスの阻止効果には限界がある。個別の認証暗号(パスワードなど)による検証の方法は暗号解読技術が発達しているので、パスワードは解読されたり漏えいしたりするので万全ではない。上記の事情から、直接間接を問わずインターネットに接続している限り従来のプログラミング手法ではウィルスの侵入を完全に阻止することは不可能なのである。 However, since there are theoretically infinite number of new viruses, it cannot cope with all viruses, and it is difficult to determine whether it is malicious in the first place. The above vulnerabilities are extinct as long as they are human-made software. Because it is difficult, there is a limit to the virus prevention effect. The method of verification using individual authentication ciphers (passwords, etc.) is not perfect because cryptanalysis technology has been developed, and passwords are decrypted or leaked. From the above situation, it is impossible to completely prevent the invasion of viruses by the conventional programming method as long as the Internet is connected directly or indirectly.
3.シナリオ関数によるウィルスの無力化
そこで究極のウィルス対策として発明されたのがシナリオ関数というプログラミング手法である。シナリオ関数は、ウィルスが侵入しても、自らウィルスを検出し除染し正常処理に復帰させる。このウィルスの検出・除染・正常復帰をウィルスの無力化と言う。シナリオ関数のプログラミング手法は従来のそれとは全く異なる方法である。シナリオ関数には従来のプログラミング手法のウィルスに対する弱みである「処理順序指示原理」と「データ値の無検証使用原理」がないのである。以下にシナリオ関数というプログラミング手法について説明する。
3. Disabling viruses with scenario functions The scenario function was invented as the ultimate anti-virus measure. Even if a virus enters, the scenario function detects the virus itself, decontaminates it, and returns to normal processing. This virus detection, decontamination, and normal recovery is called virus neutralization. The scenario function programming method is completely different from the conventional one. The scenario function does not have the “processing order instruction principle” and the “non-verification use principle of data values” which are weaknesses against viruses of conventional programming techniques. A programming method called scenario function is described below.
先ず第1に、シナリオ関数においての「処理順序」について述べる。前述の通り、現在のプログラミング手法は人が「処理順序指示」をする。一方シナリオ関数法では、処理順序はコンピュータが決める。以下シナリオ関数について概説する。要件を単一機能命令文に分解し、夫々を個々の処理とする。要件に従って決められた個々の処理方法がどのような順番で記述され並べられていようとも、コンピュータは処理出来るものから処理させて行き、処理できないものが残れば、再び並べられた順番の先頭に戻って未処理の処理を試みさせ、この作業を循環繰り返し行わせることによって、結局全部の処理を実行してしまうのである。図1参照。 First, the “processing order” in the scenario function will be described. As described above, in the current programming method, a person performs “processing order instruction”. On the other hand, in the scenario function method, the processing order is determined by the computer. The scenario function is outlined below. Decompose requirements into single function statements, each of which is an individual process. Regardless of the order in which the individual processing methods determined according to the requirements are described and arranged, the computer starts processing from what can be processed, and if anything that cannot be processed remains, it returns to the top of the order in which they are arranged again. All the processes are eventually executed by trying unprocessed processes and repeating this work in a cyclic manner. See FIG.
例によって説明する。或る変数Aの値を生成させる処理があったとする(if X>Y A=B+C)。そのために必要な変数B,C,X,Y(オペランドという)の値が得られるまで全ての処理を循環繰り返し試行させて実行出来る処理があればそれを実行させてB,C,X,Y全ての値を得た後、初めて変数Aの値が生成される即ち当該処理が実行される。人が処理順序を指示するのではなく循環繰り返しによって必要なデータの値が得られる順に処理するのである。このように処理Aを循環繰り返しによって結局実行さてしまうための一連のプログラムをベクトルAプログラム(ベクトルAと略す)と呼ぶ。図2参照。この処理方法をデータ結合という。これがシナリオ関数の基本原理である。シナリオ関数の処理順序はプログラムとして記述された順序ではない。実際の処理の順序は循環繰り返しで処理を試行して結果を見なければ人にはわからない。なお、シナリオ関数では、現在のプログラミング手法にある前述のような飛び先の行の番地を指示してそこに書かれた処理方法を実行すると言う操作は無い。飛び先の処理方法群も全体の処理の中に一体としてシナリオ関数処理を行うからである。また条件分岐の場合は、是の場合の処理と否の場合の処理の両方を同列に実行し、一方が成立するので成立する処理を採用する。つまり、シナリオ関数の特徴である「処理順序は循環繰り返しの結果で決まる」原理によって個々の処理はプログラムの何処に書かれていてもよいのである。 This will be explained with an example. Assume that there is a process that generates the value of a variable A (if X> Y A = B + C). Therefore, if there is a process that can be executed by repeatedly trying all the processes until the necessary variables B, C, X, Y (operands) are obtained, all B, C, X, Y are executed. After obtaining the value, the value of the variable A is generated for the first time, that is, the processing is executed. Rather than instructing the processing order by a person, processing is performed in the order in which necessary data values are obtained by cyclic repetition. A series of programs for eventually executing the process A by cyclic repetition is called a vector A program (abbreviated as vector A). See FIG. This processing method is called data combination. This is the basic principle of the scenario function. The processing order of the scenario functions is not the order described as a program. The actual processing order cannot be understood by a person unless he / she tries the processing by cyclic repetition and sees the result. In the scenario function, there is no operation for instructing the address of the destination line as described above in the current programming method and executing the processing method written there. This is because the processing method group for the jump destination also performs the scenario function processing as a whole in the entire processing. In the case of conditional branching, both the processing in the case of right and the processing in the case of failure are executed in the same row, and the processing that is satisfied because one of them is satisfied is adopted. In other words, the individual processes may be written anywhere in the program based on the principle of “the processing order is determined by the result of cyclic repetition” which is a feature of the scenario function.
4.シナリオ関数のウィルス対応方法
上記の例で説明する。A の値が正しく得られるためには、B、 C、 X、 Yに値が得られて、且つそれらが正規の処理即ちプログラムによって生成した値である必要がある。ウィルスによって与えられた値では正しくないのである。さらにそれらオペランドの上流の値もすべてそうでなければならない。入力データ値からAの値に至るまでデータ値の依存関係の連鎖で各処理の方法によって繋がっていなければならない。このデータ値の連鎖で繋がっている状態の個々のデータ項目の値を正統な値と言う。この連鎖の中のどこかの値がウィルスで改ざんされた値であれば、それを検出し排除しなければならない。
4). Scenario function virus handling method The above example will be described. In order for the value of A to be obtained correctly, values for B, C, X, and Y need to be obtained, and they must be values generated by normal processing, that is, a program. The value given by the virus is not correct. In addition, all values upstream of those operands must be so. From the input data value to the A value, it must be linked by the method of each processing in a chain of data value dependency relationships. The values of the individual data items connected by this data value chain are called legitimate values. If any value in this chain is altered by a virus, it must be detected and eliminated.
以下の説明は図2の処理Aに係るベクトルAを参照されたい。或る処理A(例えば前記の処理A 即ち A=B+C if X>Y)において、変数Aが正統な値である為には、Aがウィルスによって生成されたものではなく処理Aによって生成された値であり、且つ、成立条件X>Yが成立していることの他に、B、C、X、Y(オペランド)が正統な値であることが必要である。即ち、Aの値が正統である為には、
(a) B、C、X、Y(オペランド)が正統な値であること
(b)成立条件X>Yが成立していること
(c) 処理Aの完了フラグがオンになっていること、
が成立していることが必要である。そのための判定を行わなければならない。そこで、B、C、X、Yについても夫々にAについての上記と同様な正統性の判定を行う。Aの値が正統であるための上記(a)を判定するために、夫々のオペランドの処理に係るベクトルにおいて後述する正統性フラグが立っているかを判定する。若しB、C、X、Yに係るメインプログラムの個々に正統性フラグが立っており、上記の(b)、(c)が成立していれば、Aの値は正統に成立したとしてその正統性フラグを立てる。上記(a)、(b)、(c)の判定操作を正統性検証操作という。このように個々の変数に係るベクトルを循環繰り返し実行し、夫々の処理が実行され、結果が是と判定されれば夫々の変数に正統性フラグを立てる。若しB、C、X、Y何れかに正統性フラグが立っておらず、或いは、X>Yが成立していなければ、Aに正統性フラグは立てずにAを初期値化する。前記の正統性検証操作を実行するプログラムを正統性検証プログラムという。
For the following description, refer to the vector A related to the process A in FIG. In a certain process A (for example, the above process A, that is, A = B + C if X> Y), since the variable A is a legitimate value, A is not generated by the virus but generated by the process A. It is necessary that B, C, X, and Y (operands) are legitimate values in addition to the fact that the satisfaction condition X> Y is satisfied. In other words, for the value of A to be legitimate,
(a) B, C, X, and Y (operands) are legitimate values
(b) Satisfaction condition X> Y is satisfied
(c) Process A completion flag is on,
Must be established. You must make a decision for that. Therefore, the legitimacy of B, C, X, and Y is also determined for A as described above. In order to determine (a) above because the value of A is legitimate, it is judged whether or not a legitimacy flag, which will be described later, is set in a vector related to the processing of each operand. If the legitimacy flag is set in each of the main programs related to B, C, X, and Y, and if (b) and (c) above are established, the value of A is assumed to be legitimate. Raise the legitimacy flag. The determination operations (a), (b), and (c) above are called legitimacy verification operations. In this way, the vectors related to the individual variables are cyclically executed repeatedly, and each process is executed. If the result is determined to be good, the legitimacy flag is set for each variable. If the legitimacy flag is not raised in any of B, C, X, and Y, or X> Y is not established, A is initialized without setting the legitimacy flag in A. A program that executes the legitimacy verification operation is referred to as a legitimacy verification program.
この操作を任意の順序で並べられた全ての個々の処理に係るベクトルについて次々に実行し、全ての値が正統に成立するまで循環繰り返し実行する。これによって、全ての入力データ値から全ての出力データ値に至るまでの全てのデータ値が相互依存関係の連鎖で繋がっていることが保証される。即ち全ての値がプログラムによって生成された値であることが保証される。この連鎖の中のどこかの変数の値がプログラムで生成された値でなければ、当該変数の処理完了フラグがオンになっていないのでそれはウィルスによって与えられた値であり、当該変数の値に正統性フラグが立たないので、前記正統性検証プログラムによって検出される。検出されればそれを初期値化して除染し、引き続き循環繰り返しによって正常状態に復帰する事ができることになる。
上記のプログラムをシナリオ関数プログラムと言う。この技術は、日本国で特許(特許第5992079号、及び第6086977号)となっている。
This operation is successively executed for all vectors related to individual processes arranged in an arbitrary order, and is repeatedly executed until all values are legitimately established. This ensures that all data values from all input data values to all output data values are linked in a chain of interdependencies. That is, it is guaranteed that all values are values generated by the program. If the value of some variable in this chain is not a value generated by the program, the processing completion flag for that variable is not turned on, so it is the value given by the virus, and the value of that variable Since the legitimacy flag is not raised, it is detected by the legitimacy verification program. If it is detected, it is deinitialized and decontaminated, and then it can be returned to a normal state by repeated circulation.
The above program is called a scenario function program. This technology is patented in Japan (Patent Nos. 5992079 and 6086977).
特許第5992079号公報Japanese Patent No. 5992079 特許第6086977号公報Japanese Patent No. 6086977
シナリオ関数プログラムの課題
上記のシナリオ関数にも課題がある。それは、個々の変数のベクトルにおいて当該処理を実行するためにそれに必要なデータを読み込む際に、そのデータの中にウィルスプログラムが混入していればそのウィルスが実行されてしまうことである。個々の変数の処理とは、プログラムの命令文で言えば、代入文(例:A=B+C)、定値文(A=10)、条件文(X<Y)、入力文(Read A)、出力文(Write A)である。全てのプログラムの処理はこの5種の処理に帰着する。
上記の課題を、例として入力命令文で説明する。入力命令文によって外部データが読み込まれる際に、正規のデータに付随してウィルスプログラム(単にウィルスと言う)が読み込まれると、コンピュータが入力命令文の次にそのウィルスを起動させてしまうという問題である。ひとたびウィルスが起動すれば、ウィルスは本来のプログラムのデータを改ざんしたり盗んだり何でも行うことが出来る。これがシナリオ関数の課題である。
この課題は入力命令文についてだけではない。前記5種の処理はその処理に必要な全てのデータの値を読み込む作業をする。だからそのデータの中にウィルスプログラムが紛れ込んでいると上記の問題が起きる。
Scenario Function Program Issues The above scenario functions also have issues. That is, when data necessary for executing the processing is read in each vector of variables, if the virus program is mixed in the data, the virus is executed. The processing of individual variables is, in terms of program statements, assignment statements (eg A = B + C), constant statements (A = 10), conditional statements (X <Y), input statements (Read A) This is an output statement (Write A). All program processes result in these five processes.
The above problem will be described as an example using an input command sentence. When external data is read by an input command statement, if a virus program (simply called a virus) is read along with legitimate data, the computer will start the virus next to the input command statement. is there. Once the virus starts, it can tamper with or steal the original program data. This is the problem of the scenario function.
This issue is not just about input statements. The five types of processing work to read all data values necessary for the processing. Therefore, if the virus program is mixed in the data, the above problem will occur.
ウィルスの機能によって二つの状況が有る。
1つ目は、ウィルスが本来のシナリオ関数に戻る機能を持っていなければ、本来のシナリオ関数が実行されないので、ベクトルAについて一定以上の時間が経過しても処理が完了しない。その状態を異常状態として直ちに警告を発し、シナリオ関数を停止させる。
2つ目は、ウィルスが本来のシナリオ関数に戻る機能を持つならば、ウィルスがデータを改ざんした場合は、シナリオ関数によってそれらを検出し除染し再生することが出来る。しかし、データを盗むだけで改ざんをしない場合は、シナリオ関数ではウィルスを捕捉できない。その場合は前記と同様に、ウィルスがデータを盗む時間だけ処理Aの完了が遅れることを利用し、処理Aについて一定以上の時間が経過しても処理が完了していなければ異常状態として直ちに警告を発し、シナリオ関数を停止させる。上記を纏めると次のようになる。
・戻らないタイプのウィルスに対しては、一定時間経過後に処理が完了していなければ警告・緊急停止。
・戻るタイプのウィルスの内、データの改ざんを伴うものに対しては、シナリオ関数で検出・除染・再生。データを盗むだけのものに対しては、正常データ の読取に必要な最短時間経過後に処理が完了していなければ警告・緊急停止。
 したがって、本発明は監視対象プログラムを作成するための要件を単一機能命令文に分解し、夫々を「個々の処理」とする時、個々の処理を任意に並べ、個々の処理を順次循環繰り返し試行し、個々の処理を実行するために必要な全ての変数の値の生成を試み、生成できる値を順次に生成して行き、結局全ての個々の処理を実行させるシナリオ関数と呼ぶプログラムにおいて、個々の処理の所要時間を監視して、その所要時間が適宜設定された一定時間を超えるかどうかを判定し、超えた場合はウィルスの実行がなされたと判定して、警告を発し、シナリオ関数を緊急停止させることを特徴とするウィルスの監視プログラムを提供する。
 なお、説明の便宜上、本発明に係るプログラムを「処理時間監視プログラム」として以下説明する。
There are two situations depending on the function of the virus.
First, since the original scenario function is not executed unless the virus has a function of returning to the original scenario function, the processing is not completed even if a certain time or more has elapsed for the vector A. The state is abnormal and an immediate warning is issued to stop the scenario function.
Second, if the virus has a function to return to the original scenario function, if the virus has altered the data, it can be detected, decontaminated and reproduced by the scenario function. However, if the data is stolen but not tampered with, the scenario function cannot catch the virus. In that case, as described above, using the fact that the completion of process A is delayed by the time the virus steals the data, if process A is not completed after a certain amount of time has passed, an abnormal state is immediately warned To stop the scenario function. The above is summarized as follows.
・ Warning / emergency stop for non-returning viruses if processing is not completed after a certain period of time.
・ Detection / decontamination / regeneration with scenario function for return type virus with data alteration. For those that only steal data, a warning / emergency stop is issued if the processing is not completed after the minimum time required to read normal data.
Therefore, the present invention breaks down the requirements for creating a program to be monitored into single function statements, and when each is set to "individual processing", the individual processing is arbitrarily arranged, and the individual processing is sequentially repeated cyclically. In a program called a scenario function that tries to generate values of all variables necessary to execute individual processes, generates values that can be generated sequentially, and eventually executes all individual processes. The time required for each process is monitored, and it is determined whether the required time exceeds a predetermined time. If it exceeds, it is determined that the virus has been executed, a warning is issued, and the scenario function is set. Provided is a virus monitoring program characterized by an emergency stop.
For convenience of explanation, the program according to the present invention will be described below as a “processing time monitoring program”.
従来法プログラムとシナリオ関数プログラムの動作の比較Comparison of operation of conventional method program and scenario function program シナリオ関数型プログラムに適用する処理時間監視プログラム(強制割込み判定型)Processing time monitoring program (forced interrupt judgment type) applied to scenario function type programs シナリオ関数型プログラムに適用する処理時間監視プログラム(処理終了時間規制型)Processing time monitoring program (processing end time regulation type) applied to scenario function type programs シナリオ関数型プログラムに適用する処理時間監視プログラム(ベクトル終了時間規制型)Processing time monitoring program applied to scenario function type programs (vector end time regulation type) 従来法プログラムに応用する処理時間監視プログラム(強制割込み判定型)Processing time monitoring program (forced interrupt judgment type) applied to the conventional method program
図2はタイマー割込みを使用した例である。図3はベクトル制御プログラムを使用した例である。図2参照。個々の処理(命令)について処理時間監視プログラムを以下のように構築する。シナリオ関数だから処理はベクトルで行う。先ず、個々の処理(命令文)(例として処理Aとする。例えばA=B+C)の直前に必ずタイマースイッチをオンとする。その次に処理Aを実行させる。処理Aを実行した後、処理Aの完了フラグをオンさせる。次に、前記の処理によって生成された値の正統性を検証するために前記の正統性検証プログラムを実行し、判定が是であれば正統性フラグをオンとし、否であれば前記の生成された値を初期値化する。 FIG. 2 is an example using a timer interrupt. FIG. 3 shows an example using a vector control program. See FIG. A processing time monitoring program is constructed for each process (command) as follows. Since it is a scenario function, processing is performed with vectors. First, the timer switch is always turned on immediately before each processing (command statement) (for example, processing A. For example, A = B + C). Next, process A is executed. After executing the process A, the process A completion flag is turned on. Next, the above-mentioned legitimacy verification program is executed to verify the legitimacy of the value generated by the above processing. If the judgment is right, the legitimacy flag is turned on. The initial value is initialized.
一方適宜に設定する時間(タイマー設定時間という)が経過すると、タイマーが割込み信号を発信する。コンピュータのCPUは割込み信号処理機能を持っているので、本来のプログラムであるベクトルプログラムを一時停止させ、データを全てレジスターに退避させ記憶させた後、割込みプログラムを起動させる。割込みプログラムは本来のプログラムのどこかに割り込んで動き、処理Aの完了フラグのオンオフ判定を行う。上記タイマー設定時間は、その時間内にウィルスが悪意の行為をした後本来のプログラムに戻り、処理Aの完了フラグをオンとする時間を与えないように短く設定しなければならない。基本的には読み込み処理に必要な時間と処理の完了フラグをオンする時間を加えた時間を超える範囲の最短時間であることが望ましい。そうすればウィルスが悪事を働く時間を制限することが出来る。その場合、正規のデータでも前記のタイマー設定時間よりも長い読み込み時間が必要な場合には、読み込み途中での警告・緊急停止が起こる。しかしこれも良いとすることも一つの方法である。なぜなら緊急停止しても、人がチェックして問題が無ければそのまま再起動すれば済むことであり、ウィルスに悪事を働かせる時間を多く与えるよりはよほどましだからである。逆に言えば、タイマー設定時間を長く設定しウィルスに悪事を働く時間を与えると、ウィルスの悪事がデータを盗むだけの場合は、ウィルスの悪事を認知できないことに注意する必要がある。 On the other hand, when an appropriately set time (referred to as timer set time) elapses, the timer transmits an interrupt signal. Since the CPU of the computer has an interrupt signal processing function, the vector program, which is the original program, is temporarily stopped, all data is saved in a register and stored, and then the interrupt program is started. The interrupt program operates by interrupting somewhere in the original program, and determines whether the completion flag of process A is on or off. The timer setting time must be set to be short so as not to give time to turn on the completion flag of process A by returning to the original program after the virus has made a malicious action within that time. Basically, it is desirable that the minimum time is within a range exceeding the time required for the reading process and the time for turning on the process completion flag. That way, you can limit the amount of time the virus does bad things. In such a case, if even the regular data requires a reading time longer than the timer setting time, a warning / emergency stop will occur during the reading. But this is also a good way to do it. This is because even if there is an emergency stop, if a person checks and there is no problem, it can be restarted as it is, and it is better than giving more time for the virus to do something wrong. To put it the other way around, if you set a long timer setting time and give the virus time to do evil, it is necessary to be aware that if the virus only steals data, you cannot recognize the virus.
更に詳しく述べる。タイマー設定時間がセットされると、上記の割込みプログラムは、タイマー設定時間を経過すると起動し、ベクトル内の処理Aの完了フラグのオンオフを判定する。該フラグがオンならば、タイマー設定時間内に処理Aが正常に終了したことを示すので、割込みプログラムは本来のプログラムの割り込んだ次の場所に実行を戻す。一方、該フラグがオフであれば、その状態は、正常な読み込み処理の次にウィルスが実行されて時間を消費し、そのためまだ該フラグをオンさせていないと判断して、警告を発し、シナリオ関数プログラムを緊急停止する。
なお、プログラム設計上では、割込みプログラムにおいてオンオフを判定すべき処理完了フラグを特定するために、各ベクトルのスタートの直後に、当該ベクトルの処理完了フラグ名を割込みプログラムに登録する。
Further details will be described. When the timer set time is set, the interrupt program starts when the timer set time elapses, and determines whether the completion flag of the process A in the vector is on or off. If the flag is on, it indicates that the process A has been completed normally within the timer set time, so that the interrupt program returns execution to the next place where the original program interrupted. On the other hand, if the flag is off, the state is that the virus is executed after the normal reading process and consumes time. Therefore, it is determined that the flag has not been turned on, and a warning is issued. Emergency stop the function program.
In the program design, in order to specify the processing completion flag to be determined on / off in the interrupt program, the name of the processing completion flag of the vector is registered in the interrupt program immediately after the start of each vector.
以上の実施形態は、割込みプログラムを使用したが、処理Aの実行時間を規制する方法もある。図2-1参照。即ち「処理Aが一定時間内に終了すれば正常として次の処理に進み、一定時間以内に終了しなければ、指定するプログラムに進む」というプログラム命令を使用する。一定時間以内に処理Aが終了しなければ、その状態は、正常な読み込み処理の次にウィルスが実行されて時間を消費した為であると判断して、警告を発し、シナリオ関数プログラムを緊急停止する。 In the above embodiment, the interrupt program is used, but there is also a method for regulating the execution time of the process A. See Figure 2-1. In other words, a program instruction is used that “if processing A ends within a certain time, it proceeds to the next processing as normal, and if it does not end within a certain time, it proceeds to a designated program”. If process A does not finish within a certain time, it is judged that the state is because the virus was executed after the normal reading process and time was consumed, a warning was issued, and the scenario function program was urgently stopped. To do.
所で、個々のベクトル内の処理Aが完了したか未完かの判定の為のフラグの設置位置、或いは処理Aの実行時間を規制する命令の設置位置は、上記のように処理Aの直後が望ましい。それ以降の位置であれば、処理A以降で設置すべき処理完了判定フラグまでの途中の多くの操作のための時間が種々の要素によって変動するので、処理A直後に動くウィルスの悪事を働く時間を敏感に捕捉することが難しくなる。しかし、シナリオ関数によるプログラムにおいては、ベクトルは既に決められたパターンを持っており、そこに処理Aの完了フラグ、或いは処理完了時間規制命令を挿入することは好ましくない場合がある。その場合には、ベクトルを一定時間(タイマー設定時間と同じ)内に終了したかどうかでウィルスの悪事があったかどうかを判定する。図3参照。この場合、各ベクトルを制御するプログラム(シナリオ関数では座標関数という)の中に、各ベクトルを順番に起動する際に、
「ベクトルAが一定時間内に終了すれば正常として次の処理に進み、一定時間以内に終了しなければ、指定するプログラムに進む」
という命令を使えばよい。そして指定するプログラムに、警告を発しシナリオ関数の緊急停止をさせる機能を持たせる。
この場合には、ウィルスが起動後に本来のプログラムに戻って来る機能を持っているならば、前記の通りウィルスの捕捉は難しくなる。特にウィルスの悪事を働く時間が短ければ一層難しい。一方戻って来る機能を持たないウィルスには有効である。但し、その場合でも、前記の一定時間を短く設定できないソフトウェアの場合には、警告・緊急停止の前にウィルスに悪事を働く時間を十分に与えてしまうことに注意すべきである。
However, the position of the flag for determining whether process A in each vector is completed or not, or the position of the instruction that regulates the execution time of process A is immediately after process A as described above. desirable. If it is a position after that, the time for many operations on the way to the processing completion judgment flag to be installed after processing A will vary depending on various factors, so the time to work on the virus that moves immediately after processing A It becomes difficult to capture sensitively. However, in a program based on a scenario function, the vector has a predetermined pattern, and it may not be preferable to insert a process A completion flag or a process completion time restriction command there. In that case, it is determined whether or not a virus has occurred by determining whether or not the vector is completed within a certain period of time (same as the timer setting time). See FIG. In this case, when starting each vector in turn in a program for controlling each vector (called a coordinate function in the scenario function),
“If vector A ends within a certain period of time, it proceeds to the next process as normal, and if it does not end within a certain period of time, it proceeds to the specified program.”
You can use this command. The specified program is given a function to issue a warning and make an emergency stop of the scenario function.
In this case, if the virus has a function of returning to the original program after startup, it is difficult to capture the virus as described above. It is even more difficult if you have a short working time, especially when doing virus evil. On the other hand, it is effective for viruses that do not have a function to return. However, it should be noted that, even in such a case, in the case of software that cannot set the predetermined time short, sufficient time is given to act on the virus before warning / emergency stop.
上記の処理時間監視プログラムを本来のプログラムに導入することは、シナリオ関数プログラムにおいては容易である。その理由を述べる。
シナリオ関数プログラムは、個別の処理方法を前記の段落番号0011記載及び図2記載のベクトルに搭載し、そのベクトルをランダムに並べておけばよく、処理順序を人が考え指示しなくても良いので、プログラムが非常に単純でありワンパターンである。なお、シナリオ関数プログラムについては前記の特許文献1及び2に詳細に記載されている。このワンパターンのプログラムに前記の処理時間監視プログラムに必要な諸命令群を予めテンプレートとして追加しておくことは簡単なことである。
It is easy for a scenario function program to introduce the above processing time monitoring program into the original program. The reason is described.
Since the scenario function program mounts the individual processing methods on the vectors described in the paragraph number 0011 and FIG. 2 and arranges the vectors at random, it is not necessary for the person to think about and specify the processing order. The program is very simple and one pattern. The scenario function program is described in detail in Patent Documents 1 and 2 described above. It is easy to previously add various instruction groups necessary for the processing time monitoring program as a template to the one-pattern program.
従来のプログラミング手法に応用する方法
前記シナリオ関数によるプログラミング手法では、処理順序はランダムでよく、処理順序は個々の処理の試行を逐次循環繰り返し実行することにより決められることは前述の通りである。他方、従来のプログラミング手法では、処理順序は人が考えてプログラムで指示することは前述した通りであるので、その指示された順序が正しければ、或る処理に必要なオペランドはその時点で必ず生成されているので個々の処理を逐次循環繰り返し実行する必要はない。しかし、この従来のプログラミング手法においては、段落番号0014で述べたような「全ての入力データ値から全ての出力データ値に至るまでの全てのデータ値が相互依存関係の連鎖で繋がっていることの保証」即ち「ウィルスによって汚染されたデータ値が一つもない保証」は得られない。
Method Applied to Conventional Programming Method In the programming method based on the scenario function, the processing order may be random, and as described above, the processing order is determined by sequentially and repeatedly executing individual processing trials. On the other hand, in the conventional programming method, the processing order is instructed by a person in the program as described above, and if the specified order is correct, an operand necessary for a certain process is always generated at that time. Therefore, it is not necessary to execute each process sequentially and repeatedly. However, in this conventional programming method, as described in paragraph 0014, “all data values from all input data values to all output data values are connected by a chain of interdependencies. A "guarantee", i.e. "a guarantee that no data values are contaminated by a virus" is obtained.
しかし、その保証を求めなければ、処理時間監視プログラムの中で、前記の正統性検証プログラムを具備する必要はない。目的が、『入力データにウィルスプログラムが混入し、そのウィルスが起動して、設定する一定時間内に正規のプログラムにおける次の処理(命令)が実行されない場合に、警告を発しプログラムの強制停止をする』及び『ウィルス対策としてその侵入経路と起動する場所は入力処理に限る』の二つだけで良いとすれば、前記の処理時間監視プログラム(図2)の中で正統性判定プログラムは不要となり、また処理時間監視プログラムは個々の全ての処理に適用するのではなく、入力処理にだけ適用すればよい。それを図示すれば図4である。 However, if the guarantee is not required, it is not necessary to provide the legitimacy verification program in the processing time monitoring program. The purpose is “If a virus program is mixed in the input data, the virus starts, and the next process (command) in the regular program is not executed within the set time, a warning is issued and the program is forcibly stopped. If it is only necessary to input the input path to the intrusion route and start location as a virus countermeasure, the legitimacy determination program is not required in the processing time monitoring program (FIG. 2). Also, the processing time monitoring program need not be applied to all individual processes, but only to input processes. This is shown in FIG.
入力処理(命令)だけは必ずこのワンパターンのサブルーチンによることとすればよい。この処理時間監視プログラムを備えた従来法のプログラミング手法では、シナリオ関数によるプログラミング手法と違って、ウィルスによる汚染を検出・除染・正常状態への復帰をすることは出来ないが、少なくともウィルスプログラムが動き本来のプログラムに戻らないウィルスの場合は、タイマー設定時間を経過すれば必ず警告を発し緊急停止される。また本来のプログラムに戻る機能を備えたウィルスの場合は、タイマー設定時間を短くすれば、段落番号0020記載と同様に、ウィルスが悪事を働く時間を制限することが出来る。だからウィルスが悪事を働く時間が一定時間よりも長ければ警告を発し緊急停止することが出来る。
以上によってウィルスが動いたことすら気付かないという災害は免れる。但し、段落番号0020に記載したシナリオ関数の場合と同様に、本来のプログラムの元の場所に戻る機能を備えたウィルスの場合、タイマー設定時間が長いと、ウィルスによるデータの盗み或いは改ざんがあっても、ウィルスを捉えることは出来なくなることに注意する必要がある。
Only the input process (command) is necessarily performed by this one-pattern subroutine. Unlike the programming method using the scenario function, the conventional programming method equipped with this processing time monitoring program cannot detect, decontaminate, and return to normal status due to virus contamination. If the virus does not return to the original program, it will be alerted and alerted whenever the timer has expired. In addition, in the case of a virus having a function of returning to the original program, if the timer setting time is shortened, the time during which the virus works wrong can be limited as described in paragraph 0020. So if the virus has been doing wrong for longer than a certain amount of time, it can issue a warning and make an emergency stop.
The above-mentioned disaster avoids disasters that do not even realize that the virus has moved. However, as in the case of the scenario function described in paragraph 0020, in the case of a virus having a function for returning to the original location of the original program, if the timer setting time is long, the virus may steal or alter the data. However, it should be noted that the virus cannot be caught.
コンピュータにウィルスが侵入し、秘かに情報を盗み、改ざんし、悪意ある動作をする等のサイバー攻撃が益々深刻になって来ている。最も困る問題は、ウィルスによる情報の漏えいや改ざんがあっても、被害者はそれを認知できないことである。本発明によって、ウィルスが起動すれば一定時間後には警告が発せられプログラムが緊急停止される。従って産業上の利用可能性は大きい。 Cyber attacks, such as viruses entering computers, secretly stealing information, tampering, and performing malicious actions, are becoming increasingly serious. The most troublesome problem is that even if information is leaked or falsified by a virus, the victim cannot recognize it. According to the present invention, if a virus is activated, a warning is issued after a certain time and the program is urgently stopped. Therefore, industrial applicability is great.

Claims (4)

  1. 監視対象プログラムを作成するための要件を単一機能命令文に分解し、夫々を「個々の処理」とする時、個々の処理を任意に並べ、個々の処理を順次循環繰り返し試行し、個々の処理を実行するために必要な全ての変数の値の生成を試み、生成できる値を順次に生成して行き、結局全ての個々の処理を実行させるシナリオ関数と呼ぶプログラムにおいて、個々の処理の所要時間を監視して、その所要時間が適宜設定された一定時間を超えるかどうかを判定し、超えた場合はウィルスの実行がなされたと判定して、警告を発し、シナリオ関数を緊急停止させる、
    ことを特徴とするコンピュータウィルスの監視プログラム。
    When the requirements for creating a program to be monitored are broken down into single function statements, and each is set to "individual processing", the individual processing is arbitrarily arranged, and individual processing is sequentially and repeatedly tried, In a program called a scenario function that tries to generate values for all variables necessary to execute the process, generates values that can be generated sequentially, and eventually executes all the individual processes, Monitor the time, determine whether the required time exceeds a certain time set as appropriate, if it exceeds, determine that the virus has been executed, issue a warning and urgently stop the scenario function,
    A computer virus monitoring program.
  2. 請求項1記載のプログラムを従来のプログラミング手法に応用する場合のプログラムであって、個々の処理の内、入力処理についてのみ実行する請求項1に記載したウィルスの監視プログラム。 The virus monitoring program according to claim 1, which is a program when the program according to claim 1 is applied to a conventional programming technique, and is executed only for input processing among individual processing.
  3. 請求項1又は2に記載のプログラムが記憶された記憶媒体。 A storage medium in which the program according to claim 1 or 2 is stored.
  4. 請求項1又は2に記載のプログラムが実体化された回路。 A circuit in which the program according to claim 1 is embodied.
PCT/JP2018/022072 2017-06-13 2018-06-08 Virus monitoring program WO2018230471A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-116304 2017-06-13
JP2017116304A JP2019003349A (en) 2017-06-13 2017-06-13 Virus monitoring method by individual instruction processing time measurement

Publications (1)

Publication Number Publication Date
WO2018230471A1 true WO2018230471A1 (en) 2018-12-20

Family

ID=64660461

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/022072 WO2018230471A1 (en) 2017-06-13 2018-06-08 Virus monitoring program

Country Status (2)

Country Link
JP (1) JP2019003349A (en)
WO (1) WO2018230471A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022522474A (en) * 2019-03-05 2022-04-19 シーメンス インダストリー ソフトウェア インコーポレイテッド Machine learning-based anomaly detection for embedded software applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025679A (en) * 2003-07-03 2005-01-27 Fujitsu Ltd Virus isolation system
JP2013101550A (en) * 2011-11-09 2013-05-23 Junko Suginaka Information processing space management method, external device, and information processing device
WO2016021220A1 (en) * 2014-08-04 2016-02-11 根来 文生 Definition structure of program for autonomously disabling invading virus, program equipped with structure, recording medium installed with program, and method/device for autonomously solving virus problem

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025679A (en) * 2003-07-03 2005-01-27 Fujitsu Ltd Virus isolation system
JP2013101550A (en) * 2011-11-09 2013-05-23 Junko Suginaka Information processing space management method, external device, and information processing device
WO2016021220A1 (en) * 2014-08-04 2016-02-11 根来 文生 Definition structure of program for autonomously disabling invading virus, program equipped with structure, recording medium installed with program, and method/device for autonomously solving virus problem

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022522474A (en) * 2019-03-05 2022-04-19 シーメンス インダストリー ソフトウェア インコーポレイテッド Machine learning-based anomaly detection for embedded software applications
JP7282195B2 (en) 2019-03-05 2023-05-26 シーメンス インダストリー ソフトウェア インコーポレイテッド Machine learning-based anomaly detection for embedded software applications

Also Published As

Publication number Publication date
JP2019003349A (en) 2019-01-10

Similar Documents

Publication Publication Date Title
US8272059B2 (en) System and method for identification and blocking of malicious code for web browser script engines
Wu et al. Taxonomy of cross-domain attacks on cybermanufacturing system
EP3259697B1 (en) Mining sandboxes
EP3121749B1 (en) Method and apparatus for ensuring control flow integrity
EP3270317B1 (en) Dynamic security module server device and operating method thereof
US20070266435A1 (en) System and method for intrusion detection in a computer system
WO2021046811A1 (en) Attack behavior determination method and apparatus, and computer storage medium
KR100745640B1 (en) Method for protecting kernel memory and apparatus thereof
KR100666562B1 (en) Method for protecting kernel driver and process
WO2018230471A1 (en) Virus monitoring program
WO2019026137A1 (en) Program verification system, method, and program
US11449618B2 (en) Active testing of access control policy
US20110126285A1 (en) Internet site security system and method thereto
KR100976961B1 (en) Security system for internet site and method thereof
JP7483927B2 (en) Method and apparatus for detecting malicious non-executable files by modifying the execution flow of application programs
KR100985071B1 (en) Method and Apparatus for detection and prevention malicious code using script languages for computer system
Ruggieri et al. Security considerations for the development of secure software systems
US20180052998A1 (en) Fine-Grained Analysis and Prevention of Invalid Privilege Transitions
CN113094699A (en) Safety monitoring method, electronic equipment and computer readable storage medium
KR101986638B1 (en) Malware preventing system and method for object file to protect
KR102086375B1 (en) System and method for real time prevention and post recovery for malicious software
KR101375658B1 (en) Program data change protecting apparatus and program data change protecting method
CN111480160B (en) System, method, and medium for process verification
KR101986028B1 (en) System and method for protecting a device against attacks on processing flow using a code pointer complement
Qurashi Securing Hypervisors in Cloud Computing Environments against Malware Injection

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: 18816506

Country of ref document: EP

Kind code of ref document: A1

WA Withdrawal of international application
NENP Non-entry into the national phase

Ref country code: DE