FFmpeg漏洞整理


=Start=

缘由:

统计整理一下近一两年发生的和FFmpeg组件相关的漏洞。

正文:

参考解答:
版本检测:
$ which ffmpeg
# 或
$ sudo find / -type f -executable -name "ffmpeg" -print0 | xargs -0 ls -lt
漏洞检测:

1.下载测试脚本:

https://github.com/neex/ffmpeg-avi-m3u-xbin/blob/master/gen_xbin_avi.py

2.生成恶意 read.avi 文件:

python3 gen_xbin_avi.py file:///etc/passwd read.avi

3.通过命令:

$ ffmpeg -i read.avi -y out.avi

将 read.avi 内容输出至 out.avi ,然后在本地用一个播放器打开 out.avi 查看视频中是否会将 /etc/passwd 文件内容渲染至视频流中。

临时缓解方案:
  • 将file://等危险协议类型添加到黑名单
修复方案:
  • 升级FFmpeg至最新版本
参考链接:

漏洞预警 | FFmpeg曝任意文件读取漏洞 #2017-06-26
http://www.freebuf.com/vuls/138377.html

Re: CVE Request: ffmpeg remote exploitaion results code execution (CVE-2016-10190) #2017-02-02
http://www.openwall.com/lists/oss-security/2017/02/02/1
https://security.tencent.com/index.php/blog/msg/116

FFmpeg远程文件窃取漏洞(CVE-2016-1897) – 移动端安全分析报告 #2016-01-14
http://bobao.360.cn/learning/detail/2879.html

如何禁用file等危险协议
https://www.ffmpeg.org/ffmpeg-protocols.html#Protocols

=END=


《 “FFmpeg漏洞整理” 》 有 7 条评论

  1. 第三方组件安全剖析
    http://insights.thoughtworks.cn/third-party-security-component/
    `
    对开发团队的考验:
    第一,版本升级可能会带来兼容性问题,导致应用无法正常启动、使用等。解决兼容性问题就可能得花去不少时间。
    第二,迈过了兼容性这一关,开发团队还得对应用进行回归测试,以确保版本升级没有破坏原有的业务功能。那么问题来了,你的团队需要花多少时间进行这一测试呢?几分钟?几小时?还是几天甚至几周?
    第三,开发团队排除重重困难,避开了兼容性问题,完成了回归测试,终于走到了发布修复这一步。此时,你的团队是否能对应用进行蓝绿部署、滚动发布以保证生产环境业务不会因为部署而中断?

    解决之道:
    创建和维护第三方组件信息库;
    定期匹配排查;
    自动化; # OWASP[DependencyCheck] / Node[https://github.com/nodesecurity/nsp]
    贯穿整个生命周期;
    `

  2. 2017年度安全报告––应用漏洞
    https://www.anquanke.com/post/id/98007
    `
    漏洞情况:
      Struts2 S2-045/S2-046漏洞
      Struts2 S2-052漏洞
      DotNetNuke CVE-2017-9822 漏洞
      IIS 6.0 WebDAV CVE-2017-7269漏洞
      FFmpeg 安全问题
      总结
      Nginx CVE-2017-7529漏洞
      Cisco WebEx CVE-2017-6753漏洞
      Git ssh CVE-2017-1000117漏洞
      CVE-2017-16943 Exim-UAF漏洞
    `

  3. 如何满足小众的录屏需求?自己配置 FFmpeg 解决问题
    https://sspai.com/post/76637
    https://ffmpeg.org/ffmpeg.html
    `
    我一共试了 9 款录屏软件,体验都不算好,软件普遍存在无法自定义画面、不兼容、稳定性低的问题。再加上自我监控方案的单次录制时间在 12 小时以上,理想的帧率(0.02 帧)远超出应用最低 15-30 帧的下限。因此,我需要另找一款稳定能兼容自由度高,又能自由定制录屏方案的工具,最终找到的是这些录屏工具共同的父母:FFmpeg。

    FFmpeg 是处理多媒体内容(如音频、视频、字幕和相关元数据)的库和工具的集合,支持在 Linux、macOS 和 Windows 全平台运行。它提供了录制、转换以及流化音视频的完整解决方案。

    之前那些录屏、视频处理工具几乎都是基于 FFmpeg 而开发的。FFmpeg 能实现它们所有的功能,同时具备超高的稳定性和兼容性。现成的录屏应用与 FFmpeg 相比,优势只在于其美观的界面和简单易上手的录制方案。

    如果你想跳出软件的限制,自由的定制录屏方案,避免莫名其妙的 bug,更加底层的 FFmpeg 反而是更稳定有效的方案。命令行录制看起来复杂,但实际上只需要熟悉十几个参数,你就能定制专属录屏方案,个人体验感觉比熟悉 Bandicam 的软件界面更简单。

    如果读了 FFmpeg 的文档,就会发现这个工具异常强大,很多采用 FFmpeg 的工具都没有将它的功能性发挥到极致,用比较普适的功能尽可能地换取了软件操作的易用性。而相应地,如果和我一样,有一个比较小众,甚至特殊的需求,已经打包好的图形界面应用就很有可能力有不逮。这时,FFmpeg 这种底层的命令行工具可能就是唯一选择,而且用了就会发现,它在功能强大的同时还更加稳定,自定义能力也更强。而且如果跨过了起初对于命令行的恐惧,理解和上手其实也不算多难。

    而且,FFmpeg 的功能不止录屏,它还有诸如连续截图、视频转帧率改大小等多种玩法,非常强大。

    当然,这篇文章的目的是分享我监控自己的延伸,分享使用 FFmpeg 录屏的入门方法,而非完全掌握,因此只介绍了录屏相关的核心代码。如果有需要,还是推荐研究一下官方文档,或者跟着我做的试一试,说不定就有新收获。
    `

  4. 音频转文字
    https://cloud.tencent.com/developer/article/2333529
    https://github.com/openai/whisper
    `
    # 先安装 ffmpeg
    # on Ubuntu or Debian
    sudo apt update && sudo apt install ffmpeg

    # on Arch Linux
    sudo pacman -S ffmpeg

    # on MacOS using Homebrew (https://brew.sh/)
    brew install ffmpeg

    # on Windows using Chocolatey (https://chocolatey.org/)
    choco install ffmpeg

    # on Windows using Scoop (https://scoop.sh/)
    scoop install ffmpeg

    # 再安装 openai-whisper
    pip install -U openai-whisper
    pip install git+https://github.com/openai/whisper.git
    pip install –upgrade –no-deps –force-reinstall git+https://github.com/openai/whisper.git
    pip install setuptools-rust

    # 示例代码
    import whisper
    model = whisper.load_model(“large”)
    prompt = f’提示内容’
    result = model.transcribe(audio_save_path, initial_prompt=prompt)
    print(“result:”,result[“text”])
    `

  5. 离线语音转录文字工具 Whisper Transcription (支持中文 / Mac)
    https://www.iplaysoft.com/p/whisper-transcription
    https://apps.apple.com/us/app/whisper-transcription/id1668083311?mt=12
    `
    Whisper Transcription 是一款相当有实用的「Mac 语音转换文字工具」,简单来说,就是它可以把说话的声音 (语音) 转成文字,帮助你办公、编辑、存档、笔记等等。

    这款工具目前已经支持超过 100 种语言的转录,其中包括中文。它的作用非常多!比如,你可以用它来转录音频文件,转录会议、访谈、讲座、VLOG、播客、日常录像,还有上课的录音等。

    而且,重点是 Whisper Transcription 是基于 AI 模型完全“离线转录”的,全部都在本机上处理,也就是说你的音频文件不会被上传到任何云端服务器,可以很好地保护你的隐私,不必担心潜在的隐私泄露问题。

    使用最先进的转录技术 Whisper,快速轻松地将音频文件转录为文本。无论您是在记录会议、讲座还是其他重要音频,Whisper for Mac 都能快速准确地将音频文件转录为文本。

    此 APP 能轻松录制和转录音频文件,只需拖放音频文件即可获得转录,所有转录工作都在您的设备上完成,不会离开您的机器,甚至还支持 .srt 和 .vtt 字幕导出,仅需几秒钟即可获得准确的文本转录(约15 倍实时速度)

    支持 Metal 和 GPU 处理,实现超快速性能
    搜索整个转录并突出显示单词
    音频播放和与转录的同步
    支持多种语言
    复制整个转录或单个部分
    阅读模式- 编辑和删除转录中的段落-选择转录语言(或使用自动检测)
    支持的格式:mp3、wav、m4a 和 mp4 视频
    支持 Tiny(仅英文)、Small、Base、Medium 和 Large-v2 模型
    批量转录多个文件并同时导出多种格式(srt、vtt 等)
    导出为 PDF 或 HTML 网站
    转录系统音频(如 Zoom 会议和其他任何音频)
    支持按照发言人不同进行拆分转录

    目前 Whisper Transcription 只支持 macOS 平台,而且软件界面只有英文版,但对于办公人士来说还是非常实用的。如果你有这方面的需求,那么可以试试用 Whisper Transcription 来转录各种音频内容。
    `

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注