从图像元数据中提取特征

时间:2012-10-03 11:24:07

标签: image-processing machine-learning metadata feature-extraction

我正在解决安全问题,我正在尝试识别恶意图像。我必须从图像中寻找属性(很可能来自元数据),这些属性可以输入到Weka中以运行各种机器学习算法,以便检测恶意图像。

由于图像元数据可能以各种不同的方式被破坏,我发现难以识别图像元数据中要查看的特征,我可以为学习算法量化。

我之前使用ImageJ等工具使用像素信息等信息来帮助我对图像进行分类,但是我正在寻找一种更好的方法(关于安全性)来识别和量化图像/图像元数据中的特征。

有关工具和功能的任何建议吗?

1 个答案:

答案 0 :(得分:2)

如前所述这不是学习问题

问题是一个漏洞 *与另一个漏洞类似*。他们利用个别的,不同的(!)库中的单独错误,例如缺少边界检查。它不是文件的属性,而是更多使用它的库。 10个图书馆中有9个不关心。由于编程错误,人们会行为不端。

检测此类文件的最佳方法是编写最多迂腐,同时编写大多数健壮的格式验证程序提出并拒绝任何不符合规格的图像。假设库在处理实际有效的图像时没有错误。

我强烈建议您从调查漏洞实际工作方式开始。了解您尝试“学习”的内容可能会引导您以某种方式检测它们(或理解为什么没有一般检测可能......)。

以下是一些关于这些漏洞的一两个可能如何工作的想法的简单示例:

假设我们有一个非常简单的文件格式,比如BMP。对于压缩,它支持简单的行程编码,因此相同的像素可以有效地存储为(count x color对)。不适用于照片,但对于艺术线条来说非常紧凑。请考虑以下图像数据:

Width: 4
Height: 4
Colors: 1 = red, 2 = blue, 3 = green, 4 = black
Pixel data: 2x1 (red), 4x2 (blue), 2x3, 5x1, 1x0, 4x1

您发现文件中有多少错误?它们可能会导致一些信任的库代码失败,但任何现代库(通过了解此类攻击并且知道文件可能由于传输和硬盘错误而损坏而编写)应该只是跳过它,甚至可能产生一些图片。看,也许是不是一次攻击,而只是产生图像的程序中的编程错误......

哎呀,即使不是每次出界都必须是攻击。想想CD。每个人都在某个时候使用“过度刻录”来在CD上放置比规范更多的数据。是的,某些驱动器可能会因为您的CD过载而崩溃。但我不会认为所有超过650 MB的CD都会受到攻击,因为它们违反了黄皮书对CD的规格。