image-processing - 从图像元数据中提取特征

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

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

由于图像元数据可能会以各种不同的方式被损坏,因此我发现很难识别图像元数据中要查看的特征,而我可以对学习算法进行量化。

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

对工具和功能有什么建议吗?

最佳答案

正如之前提到的这不是一个学习问题

问题是一个漏洞与另一个漏洞*相似*。他们利用各个不同(!)库中的各个单独的错误,例如缺少边界检查。它与其说是文件的属性,不如说是使用它的库的属性。十分之九的图书馆不会关心。人们会因为编程错误而行为不端。

检测此类文件,最好的办法就是编写最迂腐同时也是最强大的格式验证器提出并拒绝任何不 1000% 符合规范的图像。假设库在处理实际有效的图像时没有错误。

我强烈建议您从调查漏洞利用的实际工作原理开始。了解您试图“学习”的内容可能会引导您找到某种一般检测它们的方法(或理解为什么存在这种情况)无法进行一般检测...)。

下面是一个简单的示例,说明其中一个或两个漏洞利用的原理:

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

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 的规范。

关于image-processing - 从图像元数据中提取特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707483/

相关文章:

python-3.x - imgaug.augmenters.Affine 中的 'order' 参数到底是如何工作的?

machine-learning - SOM U 矩阵生成

metadata - 使用 youtube-dl 将 YouTube 下载到 mp3 并将元数据(艺术家/歌曲标题)写入 mp3 文件

macos - 如何在 Mac OS X 上设置保存文档的 kMDItemKind?

ruby - 比较 Ruby 中的字节

python - 使用 OpenCV 进行模板匹配时如何避免误报?

python - 在skimage中裁剪图像?

python - 一维 PyTorch 圆形填充

r - 插入符 : family specification in glmboost doesn't work

database - 如何告诉数据库类型检查文件