Image processing apparatus and method of controlling the same

An image processing apparatus that executes a plurality of processes related to a file, includes: a memory that stores a file; a processor that executes virus checking on the file. The memory stores: virus type information that associates a type of a virus detected during the virus checking with at least one of the plurality of processes; and file type information that associates a type of file with at least one of the plurality of processes, and the processor restricts one of the plurality of processes associated with the type of the detected virus, and another of the plurality of processes associated with the type of file possibly infected with the detected virus.

CROSS-REFERENCE TO RELATED APPLICATIONS

The entire disclosure of Japanese Patent Application No. 2018-103753, filed on May 30, 2018, is incorporated herein by reference.

BACKGROUND

Technical Field

The present invention relates to image processing apparatuses and methods of controlling the same, and more specifically to controlling an image processing apparatus in accordance with a result of virus checking in the image processing apparatus.

Description of the Related Art

Conventionally, extensive research has been conducted on virus checking in an image processing apparatus such as an MFP (Multi-Functional Peripheral). For example, Japanese Laid-Open Patent Publication No. 2011-65483 discloses a technique of allowing, in a multifunction device such as an MFP, the execution of jobs that use only control modules that have been confirmed as not infected with a virus by virus checking. Japanese Laid-Open Patent Publication No. 2010-141705 discloses a technique for access to a multifunction device from an external terminal, in which security information serving as a safety indicator during the access is acquired, and an access request from the external terminal is authorized on condition that the security information meets security standards. Japanese Laid-Open Patent Publication No. 2006-256104 discloses a multifunction device configured such that, when it is detected that data received from a client PC is contaminated with a virus, a notification of the virus contamination is given on a panel, to prevent secondary infection of the virus contaminating the data. Means for preventing the secondary infection described include: a notification to a user; restriction of all functions and a power shutdown; virus removal; deletion of files from which the virus cannot be removed; and a network shutdown.

Summary

On one hand, the use of virus-infected files should be avoided in consideration of the risk of secondary infection. On the other hand, restricting all functions may also restrict functions not pertinent to the virus infection, causing unreasonable reduction in working efficiency.

In view of these circumstances, there is a need for a technique for appropriately determining functions to be restricted when a virus-infected file is detected in an image processing apparatus.

SUMMARY

According to one or more embodiments of the present invention, an image processing apparatus is provided. The image processing apparatus comprises: a memory that stores one or more files; a file processor that performs each of two or more processes related to the one or more files; and circuitry that performs virus checking on the one or more files stored in the memory. The memory stores virus type information associating a type of a virus with one or more processes of the two or more processes, and file type information associating a type of a file with one or more processes of the two or more processes. The circuitry restricts, of the two or more processes, a process associated with a type of a virus detected in the virus checking, and a process associated with a type of a file possibly infected with the virus detected in the virus checking of the one or more files stored in the memory.

According to one or more embodiments of the present invention, a method of controlling an image processing apparatus is provided. The method comprises: performing virus checking on one or more files stored in a memory of the image processing apparatus; and setting, of two or more processes related to the one or more files and performed by the image processing apparatus, a process associated with a type of a virus detected in the virus checking, and a process associated with a type of a file possibly infected with the virus detected in the virus checking of the one or more files stored in the memory, as restricted processes.

According to one or more embodiments of the present invention, a non-transitory computer-readable storage medium is provided. The medium stores a computer program comprising instructions that, when executed by a computer, cause the computer to perform the method described above.

DETAILED DESCRIPTION

Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the scope of the invention is not limited to the disclosed embodiments.

Embodiments of an image processing apparatus are described below with reference to the drawings. In the following description, the same parts and components are designated by the same characters. Their names and functions are also the same. Thus, description thereof will not be repeated.

[1. Configuration of Image Processing Apparatus]

FIG. 1shows an external appearance of an image processing apparatus according to one or more embodiments of the present invention.FIG. 2shows a hardware configuration of the image processing apparatus ofFIG. 1.

One example of an image processing apparatus1is an MFP, namely, an apparatus having integrated functions such as a copier, a network printer, a scanner, a fax machine, or a document server. Image processing apparatus1includes an operation panel11, a scanner device13, a printer device14, a finisher device15to perform processes such as stapling and punching, a communication interface16, a document feeder17, a paper feed device18, a CPU (Central Processing Unit)20, a ROM (Read Only Memory)21, a RAM (Random Access Memory)22, a storage unit23, and a USB (Universal Serial Bus) interface23A.

Operation panel11includes an operation device11aand a display11b.Operation device11aincludes: a plurality of keys for inputting numbers, characters, symbols and the like; a comment key to be pressed to create a text for submission; a sensor to recognize various keys that have been pressed; and a transmission circuit to transmit a signal indicating a recognized key to CPU20.

Display11bshows: a screen for providing a message or instructions; a screen for a user to input setting contents and processing contents; a screen to display an image formed by image processing apparatus1and a result of processing; and the like. Display11bmay be a touch panel. Namely, display11band at least a portion of operation device11amay be integrally configured. Display11bhas the function of sensing a position on the touch panel touched by the user's finger, and transmitting a signal indicating a result of the sensing to CPU20.

Image processing apparatus1can communicate with an external device (for example, a personal computer) via communication interface16. The external device may have installed thereon an application program and a driver for providing instructions to image processing apparatus1. The user can thereby use the external device to remotely operate image processing apparatus1.

Scanner device13photoelectrically reads image information such as a photograph, a character or a picture from a document to acquire image data. The acquired image data (concentration data) is converted to digital data at an image processing unit not shown in the figure, subjected to various types of well-known image processing, and then transmitted to printer device14or communication interface16, to be supplied for image printing or data transmission, or to be stored in storage unit23for later use.

Printer device14prints the image data acquired by scanner device13, image data received by communication interface16from the external device, or an image stored in storage unit23, onto a recording sheet such as paper or a film. Paper feed device18is provided at the lower part of the body of image processing apparatus1, and is used to supply a recording sheet suitable for an image to be printed to printer device14. The recording sheet on which the image has been printed by printer device14, namely, a printed matter, is passed through finisher device15and subjected to processes such as stapling and punching depending on the mode setting, and ejected to a tray24.

Communication interface16is a device including a transmission unit and a reception unit for exchanging data with a PC or a facsimile terminal. An NIC (Network Interface Card), a modem, a TA (Terminal Adapter) or the like is used as one example of communication interface16.

CPU20is example circuitry (processor) to execute overall control of the entire image processing apparatus1, and to control basic functions such as a communication function, a print function, a scan function, a file transmission function and a browser function such that these functions can be used. CPU20includes: a function control unit20A for executing a function using an element other than CPU20, such as the communication function; a file transmission unit20B formed of a program module for executing the file transmission function; and a browser processing unit20C formed of a browser module for executing the browser function. Image processing apparatus1may include, instead of or in addition to CPU20, an application specific integrated circuit (ASIC) for performing the functions executed by CPU20.

ROM21is a memory storing an operation program of CPU20and the like. RAM22is a memory providing a work area when CPU20is operating based on the operation program. CPU20loads the operation program from ROM21and the like and also loads various types of data, to thereby execute work.

Storage unit23is formed of a non-volatile storage device such as a hard disk drive (HDD), and stores various applications, image data of a document read by scanner device13, and the like.

USB interface23A is an interface of a USB memory23X which is removable from image processing apparatus1. CPU20reads information stored in USB memory23X via USB interface23A. CPU20also writes information to USB memory23X via USB interface23A.

Storage unit23stores, together with various files, information for managing each file (file management information).FIG. 3shows example contents of the file management information according to one or more embodiments of the present invention. Referring toFIG. 3, the file management information associates a file name of each file with storage information, virus checking information, and latest usage information.

The storage information is information obtained when each file was stored in storage unit23, and includes a storage date and time (TS), a creation date and time (TP), a file size (VS), and a checksum value (CS). The storage date and time (TS) represents a date and time when a file was stored in storage unit23. The creation date and time (TP) represents a date and time when the file was created. The file size (VS) represents a size of the file when the file was stored in storage unit23. The checksum value (CS) represents a checksum value of the file when the file was stored in storage unit23.

When CPU20externally downloads a file, for example, CPU20registers a creation date and time and a size pertaining to this file as the creation date and time (TP) and the file size (VS) in the storage information. CPU20also registers a date and time of the downloading as the storage date and time (TS). Moreover, CPU20calculates a checksum value of the file at that point in time, and registers the value as the checksum value (CS) in the storage information. Any algorithm may be used for the calculation of the checksum value.

The virus checking information is information obtained when the latest virus checking was performed in image processing apparatus1, and includes a last checking date and time (TC), a file size (VC), and a checksum value (CC). The last checking date and time (TC) represents a date and time of the last virus checking. The file size (VC) represents a size of each file when the last virus checking was performed. The checksum value (CC) represents a checksum value of each file when the last virus checking was performed.

CPU20executes virus checking regularly, for example, and updates the last checking date and time (TC) each time the virus checking is performed. CPU20also acquires (or calculates) a size and a checksum value of each file in each virus checking, and registers them as the file size (VC) and the checksum value (CC) in the virus checking information.

The latest usage information is information obtained when the file was accessed after the virus checking, and includes a usage date and time (TU), a file size (VU), and a checksum value (CU).

The usage date and time (TU) represents the latest date and time when the file was accessed. The file size (VU) represents a size of the file after the end of this access. The checksum value (CU) represents a checksum value of the file after the end of this access.

When a file is saved after being edited, for example, CPU20registers a date and time of the saving as the usage date and time (TU). CPU20also acquires (or calculates) a size and a checksum value of the saved file, and registers them as the file size (VU) and the checksum value (CU). The checksum value (CS), the checksum value (CC) and the checksum value (CU) are calculated in accordance with the same type of algorithm, according to one or more embodiments. As a result, it can be determined that no change has been made to the file by a comparison of the checksum values.

In the example ofFIG. 3, information on two files (their file names are “NM1” and “NM2”) has been stored. For the purpose of illustration, a number is added to the end of the file name of each file. The same number as that added to the end of a file name is added to the value of the storage date and time and the like of each file, such as “TS1.”

FIG. 3shows that, after file NM1was stored in storage unit23, virus checking was performed at time TC1(the last checking date and time (TC) of file NM1).FIG. 3also shows that file NM2was stored in storage unit23after the virus checking at time TC1. Virus checking has not yet been performed after file NM2was stored in storage unit23. Thus, file NM2does not have values for the virus checking information.FIG. 3further shows that file NM2has not yet been accessed since file NM2was stored in storage unit23. Thus, file NM2does not have the latest usage information.

FIG. 4shows example contents of the updated file management information according to one or more embodiments of the present invention.FIG. 4shows that, after the state shown inFIG. 3, file NM2was accessed at time TU2(the usage date and time (TU) of file NM2inFIG. 4).

This access has caused a change in the size of file NM2from VS2to VU2. VS2and VU2may be the same value. This access has also caused a change in the checksum value of file NM2from CS2to CU2. CS2and CU2may be the same value.

FIG. 5shows other example contents of the updated file management information according to one or more embodiments of the present invention.FIG. 5shows that, after the state shown inFIG. 4, virus checking was performed at time TC2(the last checking date and time (TC) of file NM1and file NM2inFIG. 5).

In one or more embodiments, the “virus checking” may refer to only step S10inFIG. 8which will be described later, or may refer to step S10and its associated steps (steps shown inFIGS. 8 to 12).

FIG. 6shows example virus type information according to one or more embodiments of the present invention. The virus type information associates the type of a computer virus with whether to enable or disable each function of image processing apparatus1. When a virus is detected in virus checking, CPU20restricts functions associated in a given manner (for example, “disabled”) with the type of this virus in the virus type information. The “restrict” means, for example, controlling image processing apparatus1such that this function is not performed even if the execution of this function is indicated.

The virus type information is stored in storage unit23, for example. An administrator of image processing apparatus1can update the virus type information by operating operation device11a,for example. The administrator specifies, in accordance with a virus definition file, for example, functions to be restricted when each type of virus is detected, and updates the virus type information such that these functions are restricted.

In the example ofFIG. 6, a communication function, a print function, a scan function, a file transmission function, and a browser function are illustrated as the functions of image processing apparatus1.

The communication function is, for example, a function of transmitting and receiving data to and from another device by means of communication interface16. The print function is, for example, a function of printing an image on a recording sheet by means of printer device14. The scan function is, for example, a function of creating image data of a document by means of scanner device13. The file transmission function is, for example, a function of transmitting data stored in storage unit23and/or image data generated by scanner device13to an external device by means of communication interface16. The browser function is, for example, a function of accessing a network to view a web page by means of communication interface16.

Each function is controlled by CPU20operating as function control unit20A. The file transmission function may be executed by CPU20operating as file transmission unit20B. The browser function may be executed by CPU20operating as browser processing unit20C. Each of function control unit20A, file transmission unit20B and browser processing unit20C may be implemented as a program module.

The example ofFIG. 6includes information on four types of viruses represented as viruses A to D. InFIG. 6, the characteristic of each virus is indicated in parentheses, with a restricted function indicated as “disabled” and a non-restricted function indicated as “enabled.”

Virus A has the characteristic of leaking internal data of image processing apparatus1(data stored in a storage device within image processing apparatus1such as storage unit23) to the outside of image processing apparatus1. In the virus type information, for virus A, for example, the communication function, the file transmission function and the browser function are indicated as “disabled,” and the print function and the scan function are indicated as “enabled.” Accordingly, when virus A is detected in image processing apparatus1, CPU20restricts the execution of the communication function, the file transmission function and the browser function, and does not restrict the execution of the print function and the scan function.

Virus B has the characteristic of disabling internal devices (elements within image processing apparatus1; for example, printer device14, scanner device13, document feeder17and/or paper feed device18). In accordance withFIG. 6, when virus B is detected, CPU20restricts the execution of the print function, the scan function and the file transmission function of image processing apparatus1, and does not restrict the execution of the communication function and the browser function.

Virus C has the characteristic of forcibly causing a computer to view a particular site. In accordance withFIG. 6, when virus C is detected, CPU20restricts the execution of the communication function and the browser function of image processing apparatus1, and does not restrict the execution of the print function, the scan function and the file transmission function.

Virus D has the characteristic of tampering with the internal data of image processing apparatus1. In accordance withFIG. 6, when virus D is detected, CPU20restricts the execution of the print function, the scan function and the file transmission function of image processing apparatus1, and does not restrict the execution of the communication function and the browser function.

FIG. 7shows example contents of file type information according to one or more embodiments of the present invention. The file type information associates the type of a file with the functions of image processing apparatus1. When it is determined that a certain type of file is possibly infected with a virus in virus checking, CPU20restricts the execution of functions associated in a given manner (for example, “disabled”) with this type in image processing apparatus1.

In the example ofFIG. 7, an “image file” and a “communication setting file” are illustrated as file types. The “image file” is a file representing an image, and corresponds to a file having a predetermined extension such as “.img” or “.png.” The “communication setting file” is a file describing setting information for communication interface16, and corresponds to a file having a unique extension in one example. The setting information includes an IP (Internet Protocol) of image processing apparatus1, for example.

In the “image file” ofFIG. 7, the communication function and the browser function are indicated as “enabled,” and the print function, the scan function and the file transmission function are indicated as “disabled.” Accordingly, when a file determined to be possibly infected with a virus in virus checking includes the image file, CPU20restricts the execution of the print function, the scan function and the file transmission function, and does not restrict the execution of the communication function and the browser function.

In accordance withFIG. 7, when a file determined to be possibly infected with a virus in virus checking includes the communication setting file, CPU20restricts the execution of the communication function, the file transmission function and the browser function, and does not restrict the execution of the print function and the scan function.

[5. Flow of Process]

FIG. 8is a flowchart of a process performed in connection with virus checking in image processing apparatus1according to one or more embodiments of the present invention. In one example, the process ofFIG. 8is implemented by CPU20executing a given program. A flow of this process id described with reference toFIG. 8. One example timing of the start of the process ofFIG. 8is when a preset time arrives. Another example is when USB memory23X is mounted on USB interface23A. Still another example is when a user indicates the execution of virus checking via operation device11a.

In step S10, CPU20executes virus checking on each file stored in storage unit23. On this occasion, CPU20may update the “virus checking information” in the file management information for each file that has been subjected to the virus checking.

In step S12, CPU20determines whether or not a virus has been detected in the virus checking in step S10. When it is determined that a virus has not been detected (NO in step S12), CPU20causes the process ofFIG. 8to end. When it is determined that a virus has been detected (YES in step S12), CPU20causes the control to proceed to step S14.

In step S14, CPU20suspends (temporarily restricts) the communication function. As a result, the communication with an external device by means of communication interface16is cut off.

In step S16, CPU20executes control for removing the virus detected in the virus checking in step S10. In one example, CPU20accesses the virus definition file, acquires a method for removing the detected virus by reference to this virus definition file, and executes this method to remove the virus.

In step S18, CPU20determines whether or not there is evidence that the detected virus has been executed. One example of the virus execution is that an executable file infected with the virus has been executed. Another example is that a document file infected with the virus has been opened. Whether or not there is evidence for execution is determined, in one example, based on whether or not an operation log of CPU20includes the execution of this file, and determined, in another example, based on whether or not the usage date and time (TU) of this file represents a date and time after the last checking date and time (TC). The usage date and time (TU) is an example history of the file. When it is determined that there is evidence that the virus has been executed (YES in step S18), CPU20causes the control to proceed to step S28, and otherwise (NO in step S18) causes the control to proceed to step S20.

In step S20, CPU20determines whether or not there is a possibility that the detected virus tampers with data within an internal HDD (storage unit23). In one example, CPU20implements the determination in step S20by determining whether or not the type of the detected virus is a particular type (such as virus D inFIG. 6). When it is determined that there is a possibility that the detected virus tampers with the data within the internal HDD (YES in step S20), CPU20causes the control to proceed to step S28, and otherwise (NO in step S20) causes the control to proceed to step S22.

In step S22, CPU20determines whether or not the virus removal started in step S16has been completed. When it is determined that the virus removal has been completed (YES in step S22), CPU20causes the control to proceed to step S24, and otherwise (NO in step S22) causes the process ofFIG. 8to end.

In step S24, CPU20resumes the communication function suspended in step S14. As a result, image processing apparatus1resumes the communication with the external device.

In image processing apparatus1, when the detected virus is not removed by CPU20, a “NO” determination is made in step S22, and the process ofFIG. 8ends. Before the end, CPU20may give a notification (display, speech, and/or printing of a report) that image processing apparatus1is infected with a virus which is not removed by this CPU20.

In step S26, CPU20resumes the functions, if any, that were suspended other than the communication function in image processing apparatus1, and then causes the process ofFIG. 8to end. As a result, although the communication function is temporarily suspended when a virus is detected in image processing apparatus1, if there is no possibility that this virus tampers with the data within the internal HDD, all functions including the communication function are resumed after the removal of this virus has been completed.

In step S28, CPU20determines whether or not the virus removal started in step S16has been completed, as in step S22. When it is determined that the virus removal has been completed (YES in step S28), CPU20causes the control to proceed to step S30, and otherwise (NO in step S28) causes the process ofFIG. 8to end.

In step S30, CPU20resumes the communication function suspended in step S14. As a result, image processing apparatus1resumes the communication with the external device.

In step S32, CPU20determines, for each of the files stored in the internal HDD (storage unit23), whether or not there is a possibility that the file has been tampered with by secondary infection of the virus.

FIG. 9is a flowchart of a subroutine in step S32ofFIG. 8. The file examination in step S32is described with reference toFIG. 9.

In step S320, CPU20determines whether or not the last checking date and time (TC), the usage date and time (TU) and the checksum value (CU) have been registered in the file management information for a file to be processed. When it is determined that all of these three types of information have been registered for the file to be processed (YES in step S320), CPU20causes the control to proceed to step S324. When it is determined that at least one of the three types has not been registered (NO in step S320), CPU20causes the control to proceed to step S322.

In step S322, CPU20determines whether or not the last checking date and time (TC) and the usage date and time (TU) have been registered in the file management information for the file to be processed. When it is determined that both of these two types have been registered for the file to be processed (YES in step S322), CPU20causes the control to proceed to step S326. When it is determined that at least one of them has not been registered (NO in step S322), CPU20causes the control to proceed to step S328.

In steps S324, S326and S328, CPU20sets examination methods A, B and C, respectively, as a method of examining a processing object.FIG. 10represents examination method A, and is a flowchart of a subroutine in step S324.FIG. 11represents examination method B, and is a flowchart of a subroutine in step S326.FIG. 12represents examination method C, and is a flowchart of a subroutine in step S328.

Examination method A is described with reference toFIG. 10. In step SA10, CPU20determines whether or not the last checking date and time (TC) and the usage date and time (TU) match each other. The last checking date and time (TC) means a date and time of virus checking that was performed before the virus checking being performed. In one example, that the last checking date and time (TC) and the usage date and time (TU) match each other means that no change has been made to the file to be processed since the last virus checking. When it is determined that they match each other (YES in step SA10), CPU20causes the control to proceed to step SA14, and otherwise (NO in step SA10) causes the control to proceed to step SA12.

In step SA12, CPU20calculates a checksum value of the file to be processed (current checksum value), and determines whether or not the current checksum value and the checksum value (CU) match each other. In one example, that the current checksum value and the checksum value (CU) match each other means that no change has been made to the file to be processed after this file was last updated. When it is determined that these values match each other (YES in step SA12), CPU20causes the control to proceed to step SA14, and otherwise (NO in step SA12) causes the control to proceed to step SA16.

In step SA14, CPU20generates an examination result indicating that there is no possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

In step SA16, CPU20generates an examination result indicating that there is a possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

Examination method B is described with reference toFIG. 11. In step SB10, CPU20determines whether or not the last checking date and time (TC) and the usage date and time (TU) match each other. In one example, that the last checking date and time (TC) and the usage date and time (TU) match each other means that no change has been made to the file to be processed after the last virus checking was performed. When it is determined that these values match each other (YES in step SB10), CPU20causes the control to proceed to step SB14, and otherwise (NO in step SB10) causes the control to proceed to step SB16.

In step SB14, CPU20generates an examination result indicating that there is no possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

In step SB16, CPU20generates an examination result indicating that there is a possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

Examination method C is described with reference toFIG. 12. In step SC10, CPU20determines whether or not the file management information includes the storage information on the file to be processed. When it is determined that the file management information includes the storage information on the file to be processed (YES in step SC10), CPU20causes the control to proceed to step SC12, and otherwise (NO in step SC10) causes the control to proceed to step S16.

In step SC12, CPU20determines whether or not the file size (VC) of the virus checking information and the file size (VU) of the latest usage information match each other. In one example, when these values match each other, it is inferred that no change has been made to the file to be processed since the last virus checking. When it is determined that these values match each other (YES in step SC12), CPU20causes the control to proceed to step SC14, and otherwise (NO in step SC12) causes the control to proceed to step SC16.

In step SC14, CPU20generates an examination result indicating that there is no possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

In step SC16, CPU20generates an examination result indicating that there is a possibility that the file to be processed has been tampered with (is infected with a virus), and then causes the control to return toFIG. 8viaFIG. 9.

In the process shown inFIG. 12, when the storage information has not been registered for the file to be processed, it is determined that this file is possibly infected with a virus (NO in step SC10→step SC16). In one example, the storage information is information that should be registered for all files. Thus, if the storage information has not been registered for a given file, it is highly likely that the storage information has been deleted by tampering of information on this file. In the process shown inFIG. 12, it can be determined that such a file is possibly infected with a virus.

Although one of examination methods A to C is performed for each file in the description above with reference toFIGS. 9 to 12, two or all of examination methods A to C may be performed. This can allow each file to be examined more accurately for virus infection.

Returning toFIG. 8, in step S32, the file examination is conducted for each of the files in storage unit23. Then, in step S34, CPU20creates a list of files for which an examination result has been generated indicating that there is a possibility that the file has been tampered with in the file examination. In step S32, the examination may be conducted only for files that meet preset conditions of the files in storage unit23.

In step S36, CPU20determines whether or not at least one file is included in the list created in step S34. When it is determined that at least one file is included in the list (YES in step S34), CPU20causes the control to proceed to step S38, and otherwise causes the control to proceed to step S42. Namely, when there is no possibility that any of the examined files are infected with a virus, the control proceeds to step S42.

In step S42, CPU20resumes the functions, if any, that were suspended other than the communication function in image processing apparatus1, as in step S24, and then causes the process ofFIG. 8to end.

In step S38, CPU20sets restricted functions depending on the type of the virus detected in step S10, and the type of the file in the list created in step S36. One example of this setting is setting a restriction flag to restrict the execution of each function, for example. CPU20does not execute a function for which the restriction flag has been set, even if the execution of the function is requested. CPU20may reset the restriction flags for all functions in steps S24and S30.

For example, when the type of the detected virus is “virus C,” and the aforementioned list includes only a file of the type “communication setting file,” then the communication function, the file transmission function and the browser function are set as restricted functions, while the print function and the scan function are not set as restricted functions. This corresponds to the fact that functions to be restricted due to the virus type being the “virus C” are the communication function and the browser function (FIG. 6), and that functions to be restricted due to the virus type being the “communication setting file” are the communication function, the file transmission function and the browser function (FIG. 7).

In this case, a copying job can be performed. This is because the copying job uses the scan function and the print function, and doe not use the communication function, the file transmission function and the browser function.

In addition, a Scan_to_Box job (job to store image data generated by scanning in a given box within storage unit23) can be performed. This is because the Scan_to_Box job uses the scan function, and doe not use the communication function, the file transmission function and the browser function.

On the other hand, a Scan_to_PC job (job to transmit image data generated by scanning to an external PC) cannot be performed. The Scan_to_PC job uses the scan function and the file transmission function. Since the file transmission function is restricted, the Scan_to_PC job cannot be performed.

When the execution of a job using some functions is indicated while those functions are restricted, CPU20may give a notification that the job cannot be performed since some functions are restricted.

In step S40, CPU20outputs (for example, prints) the list created in step S34, and then causes the process ofFIG. 8to end. The output of the list can allow the user to determine which files are possibly infected with a virus.

[6. Summary of Disclosure]

One or more embodiments of the present invention can be summarized as follows:

<1> An image processing apparatus1includes: a storage unit23that stores one or more files; a function performing unit (a scanner device13, a printer device14, a file transmission unit20B, a browser processing unit20C, and the like) that performs each of two or more functions related to the one or more files; and a controller (a function control unit20A) that executes virus checking on the one or more files stored in the storage unit. The storage unit stores virus type information (FIG. 6) associating a type of a virus with one or more functions of the two or more functions, and file type information (FIG. 7) associating a type of a file with one or more functions of the two or more functions. The controller restricts, of the two or more functions, a function associated with a type of a virus detected in the virus checking (for example, a communication function and a browser function indicated as “disabled” for a type “virus C”), and a function associated with a type of a file possibly infected with the virus detected in the virus checking of the one or more files stored in the storage unit (for example, the communication function, a file transmission function and the browser function indicated as “disabled” for a type “communication setting file”) (step S38).

Performing a function related to a file can be interpreted as processing the file. In this sense, the function performing unit may also be referred to as a device that executes a process related to a file, namely, a file processor or a file process execution device.

<2> When a file infected with the virus detected in the virus checking has not been executed, and the type of the virus detected in the virus checking is a type that does not tamper with the one or more files in the storage unit, the controller may cancel the restriction of the two or more functions after the virus is removed (step S24).

<3> The controller may determine whether or not the file has been executed based on a log of access to the file, or a history of the file stored in the storage unit (step S18).

<4> When the type of the virus detected in the virus checking is a type that tampers with the one or more files in the storage unit (YES in step S20), the controller may examine the one or more files in the storage unit for possible infection with the virus detected in the virus checking (step S32).

<5> The two or more functions may include a function of communicating with an external device (communication function). When a virus is detected in the virus checking, the controller may execute removal of the virus after restricting the function of communicating with the external device (steps S14and S16).

<6> The controller may give a notification of the file possibly infected with the virus (step S40).

<7> The controller may examine each file in the storage unit for possible infection with the virus by using at least one of: information on the file obtained when the file was stored in the storage unit (“storage information” inFIG. 3and the like); information on the file at last virus checking (“virus checking information” inFIG. 3and the like); information on the file at latest usage (“latest usage information” inFIG. 3and the like); and information on the file at present virus checking (“current checksum value” in step SA12ofFIG. 10) (FIGS. 10 to 12).

<8> The information on the file at the latest usage may include information specifying a date and time of the latest usage (usage date and time (TU)). The information on the file at the last virus checking may include information specifying a date and time of the last virus checking (“last checking date and time (TC)” inFIG. 3and the like), and a checksum value of the file at the last virus checking (“checksum value (CC)” inFIG. 3and the like). The information on the file at the present virus checking may include a checksum value of the file at the present virus checking (“current checksum value” in step SA12ofFIG. 10).

According to one or more embodiments of the present invention, functions to be restricted are determined based not only on the type of a virus, but also on the type of a file possibly infected with the virus. As a result, when a file in the image processing apparatus is infected with a virus, minimum necessary functions are restricted.