=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 条评论
第三方组件安全剖析
http://insights.thoughtworks.cn/third-party-security-component/
`
对开发团队的考验:
第一,版本升级可能会带来兼容性问题,导致应用无法正常启动、使用等。解决兼容性问题就可能得花去不少时间。
第二,迈过了兼容性这一关,开发团队还得对应用进行回归测试,以确保版本升级没有破坏原有的业务功能。那么问题来了,你的团队需要花多少时间进行这一测试呢?几分钟?几小时?还是几天甚至几周?
第三,开发团队排除重重困难,避开了兼容性问题,完成了回归测试,终于走到了发布修复这一步。此时,你的团队是否能对应用进行蓝绿部署、滚动发布以保证生产环境业务不会因为部署而中断?
解决之道:
创建和维护第三方组件信息库;
定期匹配排查;
自动化; # OWASP[DependencyCheck] / Node[https://github.com/nodesecurity/nsp]
贯穿整个生命周期;
`
CVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞
http://www.freebuf.com/vuls/161262.html
http://blog.orange.tw/2018/01/php-cve-2018-5711-hanging-websites-by.html
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5711
`
漏洞影响的PHP版本:
PHP 5 < 5.6.33
PHP 7.0 < 7.0.27
PHP 7.1 < 7.1.13
PHP 7.2 < 7.2.1
`
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漏洞
`
漏洞检测的那些事儿 – 从理论到实战
http://rickgray.me/how-to-scan-and-check-vulnerabilities
如何满足小众的录屏需求?自己配置 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 录屏的入门方法,而非完全掌握,因此只介绍了录屏相关的核心代码。如果有需要,还是推荐研究一下官方文档,或者跟着我做的试一试,说不定就有新收获。
`
音频转文字
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”])
`
离线语音转录文字工具 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 来转录各种音频内容。
`