УСТРОЙСТВО СОЗДАНИЯ СИГНАТУРЫ, СПОСОБ СОЗДАНИЯ СИГНАТУРЫ, НОСИТЕЛЬ ЗАПИСИ, В КОТОРОМ ЗАПИСАНА ПРОГРАММА СОЗДАНИЯ СИГНАТУРЫ, И СИСТЕМА ОПРЕДЕЛЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
SIGNATURE CREATION DEVICE, SIGNATURE CREATION METHOD, RECORDING MEDIUM IN WHICH SIGNATURE CREATION PROGRAM IS RECORDED, AND SOFTWARE DETERMINATION SYSTEM

Область техники
[0001] Настоящее изобретение относится к устройству генерации сигнатуры (signature) и подобному, которое генерирует информацию сигнатуры, включающую в себя критерий для определения, включает ли в себя файл программное обеспечение, неблагоприятно влияющее на систему обработки информации.
Предшествующий уровень техники
[0002] PTL 1 раскрывает устройство генерации сигнатуры, которое генерирует информацию сигнатуры, которая представляет критерий для определения, совпадает ли история обработки, исполняемой программным обеспечением, с историей обработки, исполняемой вредоносным программным обеспечением. Устройство генерации сигнатуры трассирует обработку, исполняемую вредоносным программным обеспечением, и собирает журнал трассировки, который представляет историю обработки, исполняемой вредоносным программным обеспечением. Далее, устройство генерации сигнатуры классифицирует вредоносное программное обеспечение, которое исполняло обработку, включенную в журнал трассировки, в семейство вредоносного программного обеспечения, на основе того, аналогична ли друг другу обработка, включенная в журнал трассировки. Одно семейство вредоносного программного обеспечения является группой вредоносного программного обеспечения, имеющей журналы трассировки, сходные друг с другом. Устройство генерации сигнатуры задает серию обработки, которая является общей среди семейства вредоносного программного обеспечения, и генерирует информацию сигнатуры, на основе заданной серии обработки.
[0003] PTL 2 раскрывает устройство генерации сигнатуры. Устройство генерации сигнатуры задает текстовую строку, которая часто появляется в последовательности обработки в качестве информации сигнатуры, когда выборка является последовательностью обработки, выраженной в текстовом формате. Выборка является целью для определения наличия вредоносного программного обеспечения.
Список цитированных источников
Патентные документы
[0004] PTL 1: Японский перевод PCT публикации международной заявки № 2013-529335
PTL 2: Японская публикация не прошедшей экспертизу патентной заявки № 2012-003463
Краткое описание изобретения
Техническая ПРОБЛЕМА
[0005] Однако, даже устройство генерации сигнатуры, раскрытое в PTL 1 или PTL 2, испытывает трудность в генерации информации сигнатуры высокой точности в пределах короткого периода времени. Это объясняется тем, что генерация информации сигнатуры высокой точности занимает долгий период времени. Конкретно, устройство генерации сигнатуры, раскрытое в PTL 1, требует вычислительной среды (например, ʺпесочницыʺ (изолированной программной среды)) для трассировки серии обработки, исполняемой вредоносным программным обеспечением, и времени для трассировки серии обработки. Таким образом, устройство генерации сигнатуры, раскрытое в PTL 1, требует долгого периода времени для генерации информации сигнатуры. Кроме того, текстовые строки для индивидуального вредоносного программного обеспечения не всегда являются общими среди множества видов вредоносного программного обеспечения. В таком случае, устройство генерации сигнатуры, раскрытое в PTL 2, не может обязательно генерировать информацию сигнатуры высокой точности.
[0006] В связи с этим, одной задачей настоящего изобретения является обеспечить устройство генерации сигнатуры и подобное, которое может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени.
Решение проблемы
[0007] В качестве аспекта настоящего изобретения, устройство генерации сигнатуры включает в себя:
средство вычисления хэша для вычисления значений хэша для по меньшей мере частичной области в отдельных файлах;
средство классификации для вычисления степени сходства между значениями хэша, вычисленными средством вычисления хэша, и классифицирования множества файлов на группы на основе вычисленной степени;
средство задания для задания общих строк среди, по меньшей мере, некоторых из файлов в строках, включенных в файлы группы, причем строки являются символьными строками или битовыми строками; и
средство генерации сигнатуры для генерации информации сигнатуры, являющейся критерием для определения, включена или нет по меньшей мере часть общей строки в заданные общие строки.
[0008] Кроме того, в качестве другого аспекта настоящего изобретения, способ генерации сигнатуры включает в себя:
вычисление значения хэша для по меньшей мере частичной области в отдельных файлах;
вычисление степени сходства между вычисленными значениями хэша и классифицирование множества файлов на группы на основе вычисленной степени;
задание общих строк среди, по меньшей мере, некоторых из файлов в строках, включенных в файлы группы, причем строки являются символьными строками или битовыми строками; и
генерацию информации сигнатуры, являющейся критерием для определения, включена ли или нет по меньшей мере часть общей строки в заданные общие строки.
[0009] Кроме того, в качестве другого аспекта настоящего изобретения, программа генерации сигнатуры, побуждающая компьютер осуществлять:
функцию вычисления хэша для вычисления значения хэша для по меньшей мере частичной области в отдельных файлах;
функцию классификации для вычисления степени сходства между значениями хэша, вычисленными функцией вычисления хэша, и классифицирования множества файлов на группы на основе вычисленной степени;
функцию задания для задания общих строк среди, по меньшей мере, некоторых из файлов в строках, включенных в файлы группы, причем строки являются символьными строками или битовыми строками; и
функцию генерации сигнатуры для генерации информации сигнатуры, являющейся критерием для определения, включена ли или нет по меньшей мере часть общей строки в заданные общие строки.
[0010] Кроме того, задача также решается считываемым компьютером носителем записи, который записывает программу.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ изобретения
[0011] В соответствии с устройством генерации сигнатуры и подобным, согласно настоящему изобретению, информация сигнатуры высокой точности может генерироваться в пределах короткого периода времени.
Краткое описание чертежей
[0012] [Фиг. 1] Фиг. 1 является блочной диаграммой, иллюстрирующей конфигурацию системы определения программного обеспечения, включающей в себя устройство генерации сигнатуры согласно первому примерному варианту осуществления настоящего изобретения.
[Фиг. 2] Фиг. 2 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства генерации сигнатуры согласно первому примерному варианту осуществления.
[Фиг. 3] Фиг. 3 является диаграммой, концептуально иллюстрирующей пример информации сигнатуры.
[Фиг. 4] Фиг. 4 является блочной диаграммой, иллюстрирующей конфигурацию устройства генерации сигнатуры согласно второму примерному варианту осуществления настоящего изобретения.
[Фиг. 5] Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства генерации сигнатуры согласно второму примерному варианту осуществления.
[Фиг. 6] Фиг. 6 является диаграммой, концептуально иллюстрирующей пример информации об области, хранящейся в блоке хранения информации об области.
[Фиг. 7] Фиг. 7 является блочной диаграммой, иллюстрирующей конфигурацию устройства генерации сигнатуры согласно третьему примерному варианту осуществления настоящего изобретения.
[Фиг. 8] Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства генерации сигнатуры согласно третьему примерному варианту осуществления.
[Фиг. 9] Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления.
[Фиг. 10] Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства генерации сигнатуры согласно третьему примерному варианту осуществления.
[Фиг. 11] Фиг. 11 является диаграммой, концептуально иллюстрирующей пример информации удаления, хранящейся в блоке хранения информации удаления.
[Фиг. 12] Фиг. 12 является блочной диаграммой, иллюстрирующей конфигурацию устройства генерации сигнатуры согласно четвертому примерному варианту осуществления настоящего изобретения.
[Фиг. 13] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства генерации сигнатуры согласно четвертому примерному варианту осуществления.
[Фиг. 14] Фиг. 14 является блочной диаграммой, схематично иллюстрирующей конфигурацию аппаратных средств устройства обработки вычислений, способного реализовать устройство генерации сигнатуры или устройство определения программного обеспечения согласно каждому примерному варианту осуществления настоящего изобретения.
Примерный вариант осуществления
[0013] Далее будут подробно описаны примерные варианты осуществления настоящего изобретения со ссылкой на чертежи.
[0014] <Первый примерный вариант осуществления>
Со ссылкой на фиг. 1 будет подробно описана конфигурация устройства 101 генерации сигнатуры согласно первому примерному варианту осуществления настоящего изобретения. Фиг. 1 является блочной диаграммой, иллюстрирующей конфигурацию системы 106 определения программного обеспечения, включающей в себя устройство 101 генерации сигнатуры согласно первому примерному варианту осуществления настоящего изобретения.
[0015] Устройство 101 генерации сигнатуры согласно первому примерному варианту осуществления включает в себя блок 102 вычисления хэша (вычислитель хэша), блок 103 классификации файла (классификатор файла), блок 104 задания строки (задаватель строки) и блок 105 генерации сигнатуры (генератор сигнатуры). Система 106 определения программного обеспечения включает в себя устройство 101 генерации сигнатуры и устройство 201 определения программного обеспечения.
[0016] Устройство 101 генерации сигнатуры вводит множество файлов данных (далее ʺфайл данныхʺ упоминается как ʺфайлʺ) и генерирует информацию сигнатуры (как будет описано далее со ссылкой на фиг. 3), которая является критерием для определения, включают ли в себя файлы ввода программное обеспечение, которое неблагоприятно влияет на систему обработки информации (т.е., вредоносное программное обеспечение, далее упоминаемое как ʺнеприемлемое программное обеспечениеʺ), на основе ввода множества файлов. Устройство 101 генерации сигнатуры может принимать множество файлов через сеть связи, вместо ввода множества файлов.
[0017] Для удобства объяснения, в первом примерном варианте осуществления, предполагается, что файлы, введенные в устройство 101 генерации сигнатуры, включают в себя неприемлемое программное обеспечение.
[0018] Устройство 201 определения программного обеспечения определяет, включает ли в себя файл неприемлемое программное обеспечение, например, в зависимости от результата определения файла в соответствии с информацией сигнатуры, сгенерированной устройством 101 генерации сигнатуры. Устройство 201 определения программного обеспечения может определять, включает ли в себя файл неприемлемое программное обеспечение, в соответствии с информацией сигнатуры, сгенерированной устройством, отличным от устройства 101 генерации сигнатуры.
[0019] В последующем описании, предполагается, что программное обеспечение неблагоприятно влияет на систему обработки информации, и обработка устройства генерации сигнатуры будет описана согласно каждому примерному варианту осуществления настоящего изобретения. Однако программное обеспечение может вместо этого быть последовательностью обработки, которая включает в себя один или несколько фрагментов обработки.
[0020] Далее, со ссылкой на фиг. 2, будет подробно описана обработка устройства 101 генерации сигнатуры согласно первому примерному варианту осуществления настоящего изобретения. Фиг. 2 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 101 генерации сигнатуры согласно первому примерному варианту осуществления.
[0021] В устройстве 101 генерации сигнатуры, блок 102 вычисления хэша вычисляет значение хэша, относящееся к каждому файлу из введенного множества файлов в соответствии с предварительно определенной процедурой вычисления хэша, которая будет описана далее (этап S101). Блок 102 вычисления хэша вычисляет значение хэша, относящееся к файлу, путем исполнения обработки для вычисления значения хэша для по меньшей мере части данных, включенных в файл в соответствии с предварительно определенной процедурой вычисления хэша. Блок 102 вычисления хэша может вычислять значение хэша для частичной области (данных, сегмента, поля), включенной в файл, или может вычислять значение хэша для целой области (данных) файла. Как описано во втором примерном варианте осуществления, блок 102 вычисления хэша может выбирать область файла (данных) в качестве цели для вычисления значения хэша, например, в зависимости от типа (формата) файла.
[0022] Предварительно определенная процедура вычисления хэша является, например, размытым хешированием, которое вычисляет аналогичные значения хэша для данных, сходных друг с другом. Предварительно определенная процедура вычисления хэша не ограничена размытым хешированием. Предполагается, что блок 102 вычисления хэша вычисляет значение хэша, для удобства объяснения. Однако значение хэша может быть информацией, такой как символьная строка с размером данных меньшим, чем вычисление целевых данных, или числовая строка, без ограничения до общего значения хэша.
[0023] Далее, блок 103 классификации файла классифицирует множество файлов на множество групп на основе степени сходства между значениями хэша, вычисленными для отдельных файлов (то есть, сходства между значениями хэша) (этап S102). Блок 103 классификации файла классифицирует множество файлов на множество групп, например, в соответствии с предварительно определенной процедурой кластеризации. Когда множество файлов классифицируется на множество групп, может существовать или не существовать файл, который обычно включен во множество групп. Предварительно определенная процедура кластеризации может быть методом неиерархической кластеризации, таким как метод k-средних, или методом иерархической кластеризации, таким как метод Варда (Ward). Так как метод неиерархической кластеризации и метод иерархической кластеризации являются общеизвестными методами, их описания будут опущены в настоящем примерном варианте осуществления.
[0024] Далее, блок 104 задания строки задает строку, которая обычно включена по меньшей мере в некоторые из файлов среди символьных строк или битовых строк (далее символьная строка или битовая строка собирательно упоминаются как ʺстрокаʺ), включенных во множество файлов в группе (этап S103). Для удобства объяснения, обычно включенная строка упоминается как ʺобщая строкаʺ. Блок 104 задания строки может исполнять обработку, указанную на этапе S103, для каждой группы.
[0025] Например, блок 104 задания строки может задавать общую строку с относительно высокой частотой появления среди файлов в группе как вышеописанную общую строку. Например, когда частота появления строки, которая обычно включена в файлы в группе, выше, чем предварительно определенный порог, блок 104 задания строки может задавать строку с относительно высокой частотой появления как общую строку. Как описано выше, в настоящем примерном варианте осуществления, так как файлы ввода включают в себя неприемлемое программное обеспечение, строка, включенная в неприемлемое программное обеспечение, вероятно, будет задана путем задания строки с частым появлением.
[0026] Далее, блок 105 генерации сигнатуры генерирует информацию сигнатуры (как будет описано со ссылкой на фиг. 3), которая является критерием для определения того, включена ли или нет по меньшей мере часть общей строки, заданной блоком 104 задания строки (этап S104). Другими словами, информация сигнатуры представляет критерий для определения, включает ли в себя файл неприемлемое программное обеспечение. Блок 105 генерации сигнатуры генерирует булеву формулу, которая генерируется путем комбинирования некоторых критериев для определения, включена ли общая строка, при помощи логического оператора И (или логического оператора ИЛИ), как информацию определения информации сигнатуры. Способ вычисления информации сигнатуры на основе общей строки может быть любым способом, который генерирует информацию определения, представляющую критерий определения на основе строки, обычно включенной во множество файлов в группе, без ограничения до вышеописанного примера.
[0027] Со ссылкой на фиг. 3 будет описана информация сигнатуры. Фиг. 3 является диаграммой, концептуально иллюстрирующей пример информации сигнатуры.
[0028] Информация сигнатуры включает в себя информацию строки, которая представляет общую строку, заданную на этапе S103 согласно фиг. 2, и информацию определения, которая представляет критерий определения для определения того, включает ли в себя файл неприемлемое программное обеспечение.
[0029] В информации строки, идентификатор, который может однозначно идентифицировать общую строку, ассоциирован с информацией, представляющей содержимое общей строки. Информация строки представляет критерий, где файл включает в себя общую строку, идентифицированную идентификатором. Информация сигнатуры, представленная в качестве примера на фиг. 3, включает в себя информацию строки, где идентификатор ʺAʺ ассоциирован со строкой ʺRequireAdministratorʺ. Это указывает критерий, где строка, идентифицированная идентификатором ʺAʺ, является ʺRequireAdministratorʺ (то есть, требует авторизацию для системы), и файл включает в себя строку ʺRequireAdministratorʺ. Дополнительно, информация сигнатуры, представленная в качестве примера на фиг. 3, включает в себя идентификатор ʺCʺ и строку ʺ{01 01 01 10 01}ʺ. Он указывает критерий, где строка, идентифицированная идентификатором ʺCʺ, является ʺ{01 01 01 10 01}ʺ, и файл включает в себя строку ʺ{01 01 01 10 01}ʺ. На фиг. 3, ʺ{}ʺ указывает битовую строку.
[0030] Информация сигнатуры, представленная в качестве примера на фиг. 3, включает в себя информацию определения ʺA и B и (C или D)ʺ. Здесь, ʺиʺ указывает логический оператор И, и ʺилиʺ указывает логический оператор ИЛИ. ʺ()ʺ указывает, что операция в круглых скобках предшествует. Информация определения представляет критерий, который удовлетворяется, когда критерий, идентифицированный идентификатором ʺCʺ, удовлетворен, или критерий, идентифицированный идентификатором ʺDʺ, удовлетворен, и дополнительно, когда критерий, идентифицированный идентификатором ʺAʺ, и критерий, идентифицированный идентификатором ʺBʺ, удовлетворены. То есть, информация сигнатуры представляет критерий для определения того, что файл включает в себя неприемлемое программное обеспечение, когда критерии, указанные следующими критериями 1-3, удовлетворены в отношении файла:
критерий 1: строка ʺ{01 01 01 10 01}ʺ включена, или строка ʺZZZZZZZZZʺ включена;
критерий 2: строка ʺLookupPrivilegeValueAʺ (то есть, получение идентификатора, соответствующего авторизации) включена; и
критерий 3: строка "RequireAdministrator" включена.
[0031] Далее будет описан полезный результат устройства 101 генерации сигнатуры согласно первому примерному варианту осуществления.
[0032] Устройство 101 генерации сигнатуры может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени. Это объясняется тем, что нет необходимости отслеживать поведение программного обеспечения, чтобы сгенерировать информацию сигнатуры, и информация сигнатуры генерируется на основе общей строки среди множества файлов, по меньшей мере части содержимого которых сходны друг с другом. Далее эта причина будет описана более подробно.
[0033] Файлы, включающие в себя аналогичные компоненты, могут включать в себя конкретную обработку, которая исполняется в соответствии с компонентами. В таком случае, задание строки, общей в аналогичных компонентах, может обеспечивать получение информации сигнатуры высокой точности, которая представляет критерий для определения, включает ли в себя файл конкретную обработку.
[0034] Устройство генерации сигнатуры, раскрытое в PTL 2, генерирует информацию сигнатуры, которая представляет критерий для определения, включают ли в себя файлы конкретную обработку, без различения сходства среди содержимого компонентов, включенных в файлы. Таким образом, устройство генерации сигнатуры генерирует информацию сигнатуры, которая представляет критерий определения, включает ли в себя файл конкретную обработку, даже когда содержимое компонентов не аналогично. В таком случае, поскольку информация сигнатуры, сгенерированная устройством генерации сигнатуры, вероятно, будет генерироваться на основе шума, включенного в файлы, информация сигнатуры может не обязательно иметь высокую точность. Шум относится к строке, нерелевантной для конкретной обработки.
[0035] Напротив, устройство 101 генерации сигнатуры согласно настоящему примерному варианту осуществления задает строку, общую среди аналогичных компонентов. Поэтому общая строка, вероятно, будет представлять конкретную обработку, исполняемую в соответствии с компонентами, сходными друг с другом.
[0036] Дополнительно, устройство генерации сигнатуры, раскрытое в PTL 1, генерирует информацию сигнатуры для определения, исполняет ли программное обеспечение конкретное поведение, на основе журнала трассировки, представляющего поведение обработки, исполняемой в соответствии с программным обеспечением. Напротив, устройство 101 генерации сигнатуры согласно настоящему примерному варианту осуществления не ссылается на журнал трассировки при генерации информации сигнатуры. Исследование поведения обработки программного обеспечения требует среды исполнения, такой как ʺпесочницаʺ, и времени для трассировки поведения программного обеспечения в среде исполнения. Так как обработка трассировки поведения программного обеспечения обычно занимает долгое время, устройство генерации сигнатуры, раскрытое в PTL 1, не может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени.
[0037] Напротив, так как устройство 101 генерации сигнатуры согласно настоящему примерному варианту осуществления генерирует информацию сигнатуры, которая представляет критерий для определения, включена ли конкретная обработка на основе строки, включенной в программное обеспечение, время для трассировки поведения программного обеспечения не требуется. В связи с этим, устройство 101 генерации сигнатуры согласно настоящему примерному варианту осуществления может генерировать информацию сигнатуры в пределах более короткого периода времени по сравнению с периодом времени устройства генерации сигнатуры, раскрытого в PTL 2.
[0038] Таким образом, устройство 101 генерации сигнатуры согласно настоящему примерному варианту осуществления может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени.
[0039] <Второй примерный вариант осуществления>
Далее будет описан второй примерный вариант осуществления настоящего изобретения на базе вышеописанного первого примерного варианта осуществления.
[0040] Следующее описание главным образом описывает характеристическую конфигурацию согласно настоящему примерному варианту осуществления. Те же самые компоненты, что и компоненты вышеописанного первого примерного варианта осуществления, будут обозначены теми же самыми ссылочными позициями, чтобы избежать излишних описаний.
[0041] Со ссылкой на фиг. 4 будет подробно описана конфигурация устройства 111 генерации сигнатуры согласно второму примерному варианту осуществления настоящего изобретения. Фиг. 4 является блочной диаграммой, иллюстрирующей конфигурацию устройства 111 генерации сигнатуры согласно второму примерному варианту осуществления настоящего изобретения.
[0042] Устройство 111 генерации сигнатуры согласно второму примерному варианту осуществления включает в себя блок 112 выбора области (селектор области), блок 113 вычисления хэша (вычислитель хэша), блок 103 классификации файла (классификатор файла), блок 104 задания строки (задаватель строки) и блок 105 генерации сигнатуры (генератор сигнатуры). Устройство 111 генерации сигнатуры коммуникативно соединено с блоком 210 хранения информации об области.
[0043] Блок 112 выбора области выбирает область из файла ввода в качестве цели для вычисления значения хэша, на основе информации об области, хранящейся в блоке 210 хранения информации об области (как будет описано далее со ссылкой на фиг. 6). Блок 113 вычисления хэша вычисляет значение хэша для области, выбранной блоком 112 выбора области.
[0044] Со ссылкой на фиг. 6, будет описана информация об области. Фиг. 6 является диаграммой, концептуально иллюстрирующей пример информации об области, хранящейся в блоке 210 хранения информации об области.
[0045] Информация об области включает в себя информацию, представляющую область (далее упоминаемую как ʺцелевая областьʺ) для вычисления значения хэша, относящегося к файлу для каждого типа файла. В информации об области, представленной в качестве примера на фиг. 6, информация, представляющая тип файла, ассоциирована с информацией, представляющей целевую область. В информации об области, представленной в качестве примера на фиг. 6, тип файла ʺфайл исполненияʺ ассоциирован с целевой областью ʺтаблица импортаʺ. Она указывает, что, когда типом файла является ʺфайл исполненияʺ, значение хэша вычисляется для области ʺтаблица импортаʺ в файле. Как представлено в качестве примера на фиг. 6, может быть множество целевых областей в файле. Информация об области может включать в себя информацию, отличную от вышеописанной информации, без ограничения вышеописанным примером.
[0046] Далее, со ссылкой на фиг. 5, будет подробно описана обработка устройства 111 генерации сигнатуры согласно второму примерному варианту осуществления настоящего изобретения. Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 111 генерации сигнатуры согласно второму примерному варианту осуществления.
[0047] Блок 112 выбора области задает тип файла для каждого файла ввода (этап S111). Тип файла представляет тип файла, такой как файл исполнения, файл изображения и видеофайл. Тип файла может быть файлом изображения в формате файла таком, как файл JPEG, файл GIF и файл PNG. JPEG является аббревиатурой Joint Photographic Experts Group (Совместная группа экспертов по фотоизображениям). GIF является аббревиатурой Graphics Interchange Format (формат обмена графическими данными). PNG является аббревиатурой Portable Network Graphics (переносимая сетевая графика). Блок 112 выбора области может задавать тип файла, например, на основе расширения имени файла для идентификации файла, символьной строки или тому подобного, включенного в файл. Обработка задания типа файла блоком 112 выбора области не ограничена вышеописанным примером.
[0048] После этапа S111, блок 112 выбора области выбирает целевую область для вычисления значения хэша, относящегося к файлу заданного типа, на основе информации об области (представленной в качестве примера на фиг. 6) (этап S112). Например, когда заданный тип файла является файлом исполнения, блок 112 выбора области задает целевую область ʺтаблица импортаʺ, ассоциированную с типом файла ʺфайл исполненияʺ в информации об области (представленной в качестве примера на фиг. 6).
[0049] Блок 113 вычисления хэша вычисляет значение хэша для данных, хранящихся в области, выбранной блоком 112 выбора области, в соответствии с предварительно определенной процедурой вычисления хэша (этап S113). Таким образом, значение хэша, вычисленное в соответствии с обработкой, указанной на этапе S113, представляет значение хэша, которое вычисляется в соответствии с аналогичной процедурой для вычисления значения хэша для файла (вычисленного на этапе S101 на фиг. 2).
[0050] Блок 113 вычисления хэша и блок 112 выбора области исполняют соответственную обработку, как указано на этапах S111-S113 для множества файлов ввода.
[0051] Поэтому обработка, указанная на этапах S102-S104, исполняется в устройстве 111 генерации сигнатуры.
[0052] Далее будет описан полезный результат устройства 111 генерации сигнатуры согласно второму примерному варианту осуществления.
[0053] Согласно устройству 111 генерации сигнатуры настоящего примерного варианта осуществления, информация сигнатуры высокой точности может генерироваться в пределах короткого периода времени. Это происходит по той же самой причине, как описано в первом примерном варианте осуществления.
[0054] Кроме того, устройство 111 генерации сигнатуры согласно второму примерному варианту осуществления может генерировать более точную информацию сигнатуры. Это объясняется тем, что поскольку значение хэша значительно изменяется в зависимости от области для вычисления значения хэша, группа, вероятно, будет сгенерирована для каждого типа файла, и группа, вероятно, будет дополнительно классифицирована на основе неприемлемого программного обеспечения. Другими словами, устройство 111 генерации сигнатуры согласно настоящему примерному варианту осуществления генерирует информацию сигнатуры для группы, классифицированной на основе неприемлемого программного обеспечения, и, тем самым, сгенерированная информация сигнатуры, вероятно, будет сгенерирована на основе общей строки среди неприемлемого программного обеспечения. Таким образом, так как информация сигнатуры, вероятно, будет сгенерирована для каждого аналогичного неприемлемого программного обеспечения, информация сигнатуры, вероятно, представит характер неприемлемого программного обеспечения. В результате, сгенерированная информация сигнатуры, вероятно, является информацией сигнатуры высокой точности.
[0055] <Третий примерный вариант осуществления>
Далее будет описан третий примерный вариант осуществления настоящего изобретения на базе вышеописанного первого примерного варианта осуществления.
[0056] Дальнейшее описание главным образом будет описывать характеристическую конфигурацию согласно настоящему примерному варианту осуществления. Те же самые компоненты, что и компоненты вышеописанного первого примерного варианта осуществления, будут обозначены теми же самыми ссылочными позициями, чтобы избежать излишних описаний.
[0057] Со ссылкой на фиг. 7, будет подробно описана конфигурация устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления настоящего изобретения. Фиг. 7 является блочной диаграммой, иллюстрирующей конфигурацию устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления настоящего изобретения.
[0058] Устройство 121 генерации сигнатуры согласно третьему примерному варианту осуществления включает в себя блок 102 вычисления хэша (вычислитель хэша), блок 123 классификации файла (классификатор файла), блок 124 задания строки (задаватель строки) и блок 125 генерации сигнатуры (генератор сигнатуры). Устройство 121 генерации сигнатуры коммуникативно соединено с блоком 221 хранения информации удаления.
[0059] Блок 221 хранения информации удаления хранит информацию удаления, которая представляет строки, не являющиеся характерными для неприемлемого программного обеспечения среди информации сигнатуры, сгенерированной блоком 125 генерации сигнатуры для неприемлемого программного обеспечения, как представлено в качестве примера на фиг. 11. Фиг. 11 является диаграммой, концептуально иллюстрирующей пример информации удаления, хранящейся в блоке 221 хранения информации удаления.
[0060] Как описано выше, информация удаления включает в себя информацию, которая представляет строки, которые не являются характерными для неприемлемого программного обеспечения (далее упоминается как ʺинформация удаления строкиʺ), и может быть, например, информацией, которая представляет строки, которые обычно включены в файлы, не включающие в себя неприемлемое программное обеспечение. Информация удаления, представленная в качестве примера на фиг. 11, включает в себя строку ʺ/securityʺ (безопасность). Это указывает, что строка ʺ/securityʺ не является строкой, характерной для неприемлемого программного обеспечения. Информация удаления может представлять, например, строку, которая включена в один файл, не включающий в себя неприемлемое программное обеспечение без ограничения вышеописанным примером.
[0061] Далее, со ссылкой на фиг. 8, будет подробно описана обработка устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления настоящего изобретения. Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления.
[0062] Устройство 121 генерации сигнатуры исполняет обработку, аналогичную обработке, которая была описана со ссылкой на блок-схему последовательности операций, как проиллюстрировано на фиг. 2 в первом примерном варианте осуществления, файлов, включающих в себя неприемлемое программное обеспечение, и генерирует информацию сигнатуры для файла (этапы S101-S104).
[0063] Блок 125 генерации сигнатуры удаляет критерий для информации строки удаления в информации удаления (представленной в качестве примера на фиг. 11) из сгенерированной информации сигнатуры. Например, блок 125 генерации сигнатуры удаляет информацию строки удаления из сгенерированной информации сигнатуры путем удаления критерия для информации строки удаления и обработки логической операции между данным критерием и другими критериями (этап S125).
[0064] Как описано со ссылкой на фиг. 11, так как информация удаления представляет строку, не характерную для неприемлемого программного обеспечения, может генерироваться более точная информация сигнатуры, когда устройство 121 генерации сигнатуры исполняет обработку, проиллюстрированную на фиг. 8.
[0065] В соответствии с обработкой, как проиллюстрировано на фиг. 9, устройство 121 генерации сигнатуры может классифицировать файлы, включающие в себя неприемлемое программное обеспечение, и файлы, не включающие в себя неприемлемое программное обеспечение, на группы, соответственно. Затем, устройство 121 генерации сигнатуры может исполнять обработку на основе классифицированных групп. Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления. В обработке, проиллюстрированной на фиг. 9, устройство 121 генерации сигнатуры вводит файлы, включающие в себя неприемлемое программное обеспечение, и файлы, не включающие в себя неприемлемое программное обеспечение. Для удобства объяснения, предполагается, что устройство 121 генерации сигнатуры вводит набор неприемлемых файлов, составленный из одного или нескольких файлов, включающих в себя неприемлемое программное обеспечение, и набор приемлемых файлов, составленный из одного или нескольких файлов, не включающих в себя неприемлемое программное обеспечение.
[0066] Блок 102 вычисления хэша вычисляет значение хэша для файла в соответствии с предварительно определенной процедурой вычисления хэша (этап S101).
[0067] Блок 123 классификации файла классифицирует файлы, включенные в набор неприемлемых файлов (далее упоминаются как ʺнеприемлемые файлыʺ), на множество групп (далее упоминаются как ʺнеприемлемые группыʺ), на основе сходства значений хэша, вычисленных в отношении файлов, включенных в набор неприемлемых файлов. Подобно этому, на основе сходства значений хэша, вычисленных в отношении файлов, включенных в набор приемлемых файлов (далее упоминаются как ʺприемлемые файлыʺ), блок 123 классификации файла классифицирует приемлемые файлы на множество групп (далее упоминаются как ʺприемлемые группыʺ) (этап S132).
[0068] Далее, блок 124 задания строки задает строку, которая обычно включена среди приемлемых файлов в приемлемых группах (этап S133), и сохраняет информацию строки, которая представляет заданную строку, в блоке 221 хранения информации удаления (этап S134). Дополнительно, блок 124 задания строки задает строку, которая обычно включена среди неприемлемых файлов в неприемлемых группах (этап S135).
[0069] На основе строки, заданной в отношении файлов, включенных в неприемлемые группы, блок 125 генерации сигнатуры генерирует информацию сигнатуры, относящуюся к строке, путем исполнения обработки, аналогичной этапу S104 (фиг. 2) (этап S136). Блок 125 генерации сигнатуры удаляет критерий, относящийся к информации строки удаления, из информации сигнатуры путем исполнения обработки, аналогичной этапу S125 (фиг. 8), на основе информации удаления, включающей в себя информацию, которая представляет строку, заданную на этапе S133 (этапе S137).
[0070] Устройство 121 генерации сигнатуры может исполнять обработку в порядке от этапов S135, S136, S133 до S134 без ограничения порядком обработки, проиллюстрированным на фиг. 9.
[0071] В обработке, проиллюстрированной на фиг. 9, так как информация общей строки является информацией строки, относящейся к файлам, включенным в приемлемые группы, число файлов в качестве цели для задания информации общей строки меньше по сравнению с таковым для информации строки, относящейся к набору приемлемых файлов. Таким образом, так как задается более варьируемая информация сигнатуры, устройство 121 генерации сигнатуры может генерировать информацию сигнатуры дополнительно с более высокой точностью в дополнение к полезному результату, как описано со ссылкой на фиг. 8.
[0072] Устройство 121 генерации сигнатуры может классифицировать файлы на группы, генерировать информацию сигнатуры для неприемлемого программного обеспечения, включенного в каждую группу, и обновлять сгенерированную информацию сигнатуры на основе информации общей строки для приемлемых групп, включенных в каждую группу в соответствии с обработкой, проиллюстрированной на фиг. 10. Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления.
[0073] Блок 123 классификации файла классифицирует входное множества файлов на группы, на основе значений хэша, вычисленных блоком 102 вычисления хэша (этап S142).
[0074] Блок 124 задания строки задает строку для набора приемлемых файлов, включенного в классифицированные группы, и строку для набора неприемлемых файлов, включенного в каждую группу, в соответствии с процедурой обработки, аналогичной обработке, проиллюстрированной на этапах S133 и S135 (фиг. 9) (этапах S143 и S144).
[0075] Блок 125 генерации сигнатуры генерирует информацию сигнатуры для набора неприемлемых файлов путем исполнения обработки, аналогичной этапу S104 (фиг. 2) (этапу S145). Блок 125 генерации сигнатуры удаляет критерий для информации общей строки, которая задана в отношении набора приемлемых файлов, включенного в каждую группу, из строк, включенных в сгенерированную информацию сигнатуры, путем исполнения обработки, аналогичной этапу S125 (фиг. 8) (этапу S146).
[0076] В обработке, проиллюстрированной на фиг. 10, так как информация общей строки в качестве цели удаления из информации сигнатуры ограничена до групп в качестве источника для генерации информации сигнатуры, обработка поиска общей строки в качестве цели удаления меньше, чем обработка, проиллюстрированная на фиг. 9, и тому подобное. Таким образом, устройство 121 генерации сигнатуры генерирует информацию сигнатуры в соответствии с обработкой, проиллюстрированной на фиг. 10 и, тем самым, может генерировать информацию сигнатуры в пределах более короткого периода времени в дополнение к полезному результату, как описано со ссылкой на фиг. 9.
[0077] Далее будет описан полезный результат устройства 121 генерации сигнатуры согласно третьему примерному варианту осуществления.
[0078] Устройство 121 генерации сигнатуры согласно третьему примерному варианту осуществления может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени. Это происходит по той же самой причине, что и описано в первом примерном варианте осуществления.
[0079] Дополнительно, устройство 121 генерации сигнатуры согласно третьему примерному варианту осуществления может генерировать гораздо более точную информацию сигнатуры или генерировать информацию сигнатуры в пределах более короткого периода времени. Это объясняется тем, что вышеописанный полезный результат может быть получен на основе причин, как описано со ссылкой на фиг. 8-10.
[0080] <Четвертый примерный вариант осуществления>
Далее будет описан четвертый примерный вариант осуществления настоящего изобретения на базе вышеописанного первого примерного варианта осуществления.
[0081] Дальнейшее описание главным образом будет описывать характеристическую конфигурацию согласно настоящему примерному варианту осуществления. Те же самые компоненты, что и компоненты вышеописанного первого примерного варианта осуществления, будут обозначены теми же самыми ссылочными позициями, чтобы избежать излишних описаний.
[0082] Со ссылкой на фиг. 12, будет подробно описана конфигурация устройства 151 генерации сигнатуры согласно четвертому примерному варианту осуществления настоящего изобретения. Фиг. 12 является блочной диаграммой, иллюстрирующей конфигурацию устройства 151 генерации сигнатуры согласно четвертому примерному варианту осуществления настоящего изобретения.
[0083] Устройство 151 генерации сигнатуры согласно четвертому примерному варианту осуществления включает в себя блок 102 вычисления хэша (вычислитель хэша), блок 103 классификации файла (классификатор файла), блок 104 задания строки (задаватель строки), блок 105 генерации сигнатуры (генератор сигнатуры) и блок 156 проверки сигнатуры (анализатор сигнатуры).
[0084] Далее, со ссылкой на фиг. 13, будет подробно описана обработка устройства 151 генерации сигнатуры согласно четвертому примерному варианту осуществления настоящего изобретения. Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей поток обработки устройства 151 генерации сигнатуры согласно четвертому примерному варианту осуществления.
[0085] Блоки в устройстве 151 генерации сигнатуры исполняют обработку, указанную на этапах S101-S104 и, тем самым, устройство 151 генерации сигнатуры генерирует информацию сигнатуры.
[0086] Блок 156 проверки сигнатуры определяет, удовлетворяет ли файл, включающий в себя неприемлемое программное обеспечение, информации определения информации сигнатуры, и удовлетворяет ли файл, не включающий в себя неприемлемое программное обеспечение, информации определения информации сигнатуры, на основе информации сигнатуры, сгенерированной на этапе S104 (этапе S155). Как описано со ссылкой на фиг. 3, информация определения представляет общую строку среди неприемлемых файлов, включающих в себя неприемлемое программное обеспечение. Удовлетворение информации определения для файла приводит к определению того, что файл включает в себя неприемлемое программное обеспечение. Напротив, неудовлетворение информации определения для файла приводит к определению того, что файл не включает в себя неприемлемое программное обеспечение.
[0087] Далее, блок 156 проверки сигнатуры вычисляет точность информации сигнатуры, на основе результата определения для каждого файла (этап S156). Блок 156 проверки сигнатуры вычисляет точность для файлов, включающих в себя неприемлемое программное обеспечение, и точность для файлов, не включающих в себя неприемлемое программное обеспечение.
[0088] Блок 156 проверки сигнатуры определяет, удовлетворяет ли вычисленная точность предварительно определенному условию, и выводит только информацию сигнатуры, удовлетворяющую предварительно определенному условию (этап S157). Например, блок 156 проверки сигнатуры может определять, удовлетворяет ли точность для файлов, включающих в себя неприемлемое программное обеспечение, предварительно определенному условию. Блок 156 проверки сигнатуры может определять, удовлетворяют ли точность для файлов, включающих в себя неприемлемое программное обеспечение, и точность для файлов, не включающих в себя неприемлемое программное обеспечение, предварительно определенному условию, соответственно. Предварительно определенное условие определения для файла, включающего в себя неприемлемое программное обеспечение, является, например, критерием, где точность больше, чем предварительно определенная первая точность. Предварительно определенное условие определения для файла, не включающего в себя неприемлемое программное обеспечение, является, например, критерием, где точность не больше, чем предварительно определенная вторая точность. В таком случае, предварительно определенная первая точность и предварительно определенная вторая точность не обязательно являются теми же самыми значениями и могут быть разными значениями.
[0089] Блок 156 проверки сигнатуры может вычислять точность для каждой группы в качестве источника для генерации информации сигнатуры, вместо вычисления точности для каждой информации сигнатуры. Блок 156 проверки сигнатуры выводит информацию сигнатуры, сгенерированную на основе группы с точностью, удовлетворяющей предварительно определенному условию определения. Блок 156 проверки сигнатуры не выводит информацию сигнатуры, сгенерированную на основе группы с точностью, не удовлетворяющей предварительно определенному условию определения. В таком случае, при обнаружении посредине вычисления точности для определенной группы, что точность не удовлетворяет предварительно определенному условию определения, блок 156 проверки сигнатуры может закончить обработку вычисления точности для конкретной группы (например, обработку, указанную на этапах S155-S157). Например, предполагается, что число файлов равно 100 и предварительно определенное условие определения таково, что ʺточность определения выше, чем 70%ʺ. В таком случае, блок 156 проверки сигнатуры может закончить обработку вычисления точности для группы, когда число файлов, которое были ошибочно определены для группы, достигает 30 или более. В таком случае, блок 156 проверки сигнатуры определяет, что точность для группы не удовлетворяет предварительно определенному условию. Таким образом, в таком случае, блок 156 проверки сигнатуры не выводит группу. Так как блок 156 проверки сигнатуры может не определить, удовлетворен или нет критерий определения, относящийся к информации сигнатуры, для всех файлов, точность для информации сигнатуры может быть вычислена в пределах короткого периода времени.
[0090] Далее будет описан полезный результат устройства 151 генерации сигнатуры согласно четвертому примерному варианту осуществления.
[0091] Устройство 151 генерации сигнатуры согласно четвертому примерному варианту осуществления может генерировать информацию сигнатуры высокой точности в пределах короткого периода времени. Это происходит по той же самой причине, как описано в первом примерном варианте осуществления.
[0092] Дополнительно, устройство 151 генерации сигнатуры согласно четвертому примерному варианту осуществления может генерировать более точную информацию сигнатуры. Это объясняется тем, что устройство 151 генерации сигнатуры вычисляет точность, относящуюся к информации сигнатуры, с использованием файлов, для которых информация о том, включает ли в себя файл неприемлемое программное обеспечение, была предварительно обеспечена, и выводит только информацию сигнатуры с точностью, удовлетворяющей предварительно определенному условию определения. Таким образом, так как устройство 151 генерации сигнатуры не выводит информацию сигнатуры с точностью, не удовлетворяющей предварительно определенному условию, устройство 151 генерации сигнатуры четвертого примерного варианта осуществления может генерировать информацию сигнатуры даже с более высокой точностью определения.
[0093] Пример конфигурации аппаратных средств
Далее описан пример конфигурации аппаратных ресурсов, которые осуществляют устройство генерации сигнатуры или устройство определения программного обеспечения согласно каждому примерному варианту осуществления настоящего изобретения. Однако устройство генерации сигнатуры или устройство определения программного обеспечения могут быть реализованы с использованием физически или функционально по меньшей мере двух устройств обработки вычислений. Дополнительно, устройство генерации сигнатуры может быть реализовано как специализированное устройство.
[0094] Фиг. 14 является блочной диаграммой, схематично иллюстрирующей аппаратную конфигурацию устройства обработки вычислений, способного реализовать устройство генерации сигнатуры или устройство определения программного обеспечения согласно каждому примерному варианту осуществления настоящего изобретения. Устройство 20 обработки вычислений включает в себя центральный процессор (CPU) 21, память 22, диск 23, некратковременный носитель 24 записи и интерфейс 27 связи (далее описывается как ʺIF связиʺ). Устройство 20 обработки вычислений может соединять устройство 25 ввода и устройство вывода 26. Устройство 20 обработки вычислений может исполнять передачу/прием информации на/от другого устройства обработки вычислений и устройства связи посредством I/F 27 связи.
[0095] Некратковременный носитель 24 записи является, например, считываемым компьютером компактным диском, цифровым универсальным диском. Некратковременный носитель 24 записи может быть памятью универсальной последовательной шины (USB), полупроводниковым накопителем или тому подобным. Некратковременный носитель 24 записи позволяет хранить и переносить соответствующую программу без подачи питания. Некратковременный носитель 24 записи не ограничен вышеописанными носителями. Дополнительно, соответствующая программа может переноситься посредством сети связи при помощи I/F 27 связи вместо некратковременного носителя 24 записи.
[0096] Другими словами, CPU 21 копирует, в память 22, программу программного обеспечения (компьютерную программу, далее упоминаемую просто как ʺпрограммаʺ), хранящуюся на диске 23, при исполнении программы и исполняет арифметическую обработку. CPU 21 считывает данные, необходимые для исполнения программы, из памяти 22. Когда требуется отображение, CPU 21 отображает результат вывода на устройстве 26 вывода. Когда программа вводится извне, CPU 21 считывает программу из устройства 25 ввода. CPU 21 интерпретирует и исполняет программу генерации сигнатуры (фиг. 2, фиг. 5, фиг. 8-10 или фиг. 13) или программу определения программного обеспечения, представленную в памяти 22 соответственно функции (обработки), указанной каждым блоком, проиллюстрированным на фиг. 1, фиг. 4, фиг. 7 или фиг. 12, описанных выше. CPU 21 последовательно исполняет обработку, описанную в каждом примерном варианте осуществления настоящего изобретения.
[0097] Другими словами, в таком случае, можно представить, что настоящее изобретение также может быть реализовано с использованием программы генерации сигнатуры или программы определения программного обеспечения. Дополнительно, можно представить, что настоящее изобретение также может быть реализовано с использованием считываемого компьютером, некратковременного носителя записи, хранящего программу генерации сигнатуры или программу определения программного обеспечения.
[0098] Настоящее изобретение было описано с использованием вышеописанных примерных вариантов осуществления в качестве примерных случаев. Однако настоящее изобретение не ограничено вышеописанными примерными вариантами осуществления. Другими словами, настоящее изобретение может применяться с различными аспектами, которые будут понятны специалистам в данной области техники без отклонения от объема настоящего изобретения.
[0099] Настоящая заявка основана на и испрашивает приоритет японской патентной заявки № 2016-147473, поданной 27 июля 2016, раскрытие которой включено в настоящий документ в полном объеме.
Список ссылочных позиций
[0100]
101 устройство генерации сигнатуры
102 блок вычисления хэша
103 блок классификации файла
104 блок задания строки
105 блок генерации сигнатуры
106 система определения программного обеспечения
201 устройство определения программного обеспечения
111 устройство генерации сигнатуры
112 блок выбора области
113 блок вычисления хэша
210 блок хранения информации об области
121 устройство генерации сигнатуры
123 блок классификации файла
124 блок задания строки
125 блок генерации сигнатуры
221 блок хранения информации удаления
151 устройство генерации сигнатуры
156 блок проверки сигнатуры
20 устройство обработки вычислений
21 CPU
22 память
23 диск
24 некратковременный носитель записи
25 устройство ввода
26 устройство вывода
27 IF связи.