为什么提升内核的安全性很重要

最近《华盛顿邮报》刊文称,安全社区与 Linux 内核开发者之间的关系正处于紧张阶段。这种遭强烈的行为被称为 FUD(恐惧、疑惑、怀疑,即心理恐怖战术), Rob Graham 宣称目前无人攻击系统内核。 不幸的是,事实证明他的言论是完全错误的,这并不是 FUD 行为,目前Linux内核的安全状况还远远没有达到它应该达到的状态。 举个例子,最新版本的Android系统使用SELinux来限制应用程序的运行。这令你即使拥有一个在Android上可被完全控制的应用程序,SELinux规则也能使你很难做成任何事,尤其是用户控制。有家违反 GPL 协议的意大利公司 Hacking Team ,在销售一款可以侵犯用户隐私的监控软件,但他们发现这种内核阻碍了他们将间谍软件传输到目标设备。所以他们利用许多 Android 设备内核的 copy-from-user() 缺陷,从而实现允许他们复制任意一个用户空间的数据及其内核代码的行为,因此他们也能做到禁用SELinux。 如果我们可以信任用户空间的应用程序,我们是不需要SELinux的。但我们假定用户空间的代码是不成熟的,配置是错误的或者是完全怀有敌意的,我们就要使用例如SELinux或AppArmor等技术来限制其行为。只是有很多用户空间的代码对我们都保证是无害的,我们尽力阻止的只是它可能出现的对我们造成侵害的部分。 这在内核中显然是不正确的。这种模型目前为止在很大程度上已经是“当我们找到他们时方能修复安全漏洞”,这种方法的失败体现在两个层面上: (1)当我们找到并修复它们,但在被修复版本可以使用,到它真正被部署,这中间是有一个空窗期的。 (2)尽管动用了尖端的力量,也可能无法在第一时间发现它们。 这种反应方式是针对某个世界,一个无需先进行公测就可以进行软件更新的世界,那个世界中有以寻找内核漏洞为乐趣的好人。然而,我们并不生活在那个世界,这种方法也并不可行。 正如SELinux等功能可以使我们减少可能遭受的侵害一样,如果一个新的用户空间安全隐患被发现,攻击者将内核错误变成一个可利用的漏洞,我们可以将修复功能添加至内核,使攻击变得困难(或不可能)。如今使用Linux系统的人数越来越多,许多用户依赖这些系统在各个关键方面的安全性能,那么尽我们所能不辜负他们的信任是至关重要的。 许多有用的缓解功能已经存在于Grsecurity patchset中,但技术分歧出现在某些特性的结合,而个性冲突和明显缺乏热情的上游内核开发人员导致它几乎没有被应用于大多数人所使用的内核中。Kees Cook提出了一个新的想法,开始更加齐心协力的将Grsecurity组件迁移到上游。如果你依赖于内核安全组件,因基于它而运行程序或者说因为你自己本身就使用它,那你应尽你所能去支持这一想法。 因为安全平台的漏洞,微软受到了无可非议的批评。他们回应称,已经跨操作系统引入了先进的安全功能,包括内核部分。任何一个指责说我们需要做同样的 FUD 传播的人,他们都要冒着自由软件被边缘化为专有软件的风险,来提供更多实际性的安全功能。那并不是个好结果。 相关文章 成为Linux内核高手的四个方法 Linux 内核中断和中断处理(1) Linux 内核内存管理(1) Linux 内核同步机制 Redis 未授权访问缺陷可轻易导致系统被黑 Linus Torvalds封杀了一名Red Hat的内核开发者 记一次Linux服务器上查杀木马经历 Linux Shell 创建序列数组 Linux Shell 管道命令(pipe)使用及与 Shell 重定向区别 Linux后门入侵检测工具,附bash漏洞解决方法 为什么提升内核的安全性很重要,首发于博客 – 伯乐在线。

晚安喵伴奏

网上听到一首小音乐,简单重复的节奏,时不时补充一点喵星人的声音,分享给大家,适合深夜的时候听听,更适合铲屎官。 [hana-flv-player video=”http://blog.wo.ai/test/miao.mp3″ width=”400″ description=”” player=”5″ autoload=”true” autoplay=”false” loop=”false” autorewind=”true” /]

树莓派spi液晶屏支持(fbtft)[转]

  转自 老徐拉灯 的博客 原文地址:http://blog.csdn.net/xdw1985829/article/details/39583239 树莓派官方支持av及HDMI输出,板子上预留了一个csi接口的液晶显示屏,但是一直没有相应的模组出现。在很多应用场合我们需要一些小型的液晶屏显示一些基本的信息,所以小屏驱动很是必要。 在github上有一个开源工程:notro/fbtft,完整的实现了framebuffer驱动,让树莓派完美支持tft液晶,下面对移植过程进行一个简单说明 一、官网地址 工程首页:https://github.com/notro fbtft源码:https://github.com/notro/fbtft 编译好的固件(基于3.12.25+):https://github.com/notro/rpi-firmware 使用说明(wiki):https://github.com/notro/fbtft/wiki 二、使用编译好的固件(3.12.25+) 环境:树莓派 https://github.com/notro/rpi-firmware 1、打开SPI 树莓派默认spi是关掉的,我们需要打开 sudo vi /etc/modprobe.d/raspi-blacklist.conf 把下面这句话前面的#号删掉 blacklist spi-bcm2708 2、下载: 1)以模块的形式编译进内核(需要手动或脚本加载模块)3.12.25+(试验成功) sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update 2)直接编译进内核(笔者没有试验) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=builtin rpi-update 3)以模块的形式编译进内核(需要手动或脚本加载模块,最新版本,笔者试过启动不起来,不知道哪出问题) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=latest rpi-update 4)直接下载压缩包,手动安装(适合树莓派不能联网的时候) http://tronnes.org/downloads/2014-06-20-wheezy-raspbian-2014-07-25-fbtft-master-firmware.zip 3、配置 1)手动加载模块: sudo modprobe fbtft_device name=adafruit22 name后面的名字,要跟相应的液晶驱动芯片移植 笔者使用的液晶芯片为:fb_ra8875,所以这里写的是:er_tftm050_2 其它芯片请查阅:https://github.com/notro/fbtft/blob/master/fbtft_device.c 文件 正常会提示以下信息 fbtft_device:  SPI devices registered: fbtft_device:     … Continue reading 树莓派spi液晶屏支持(fbtft)[转]

基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

之前写了一篇移植2.4寸TFT驱动到树莓派的文章,那篇博文中的驱动代码是国外大牛写的,看了一下,还是有很多地方没理解,是得好好再学习一下内核驱动的编写,这里就从字符设备驱动开始,采用最简单的LED驱动来建立内核驱动移植的驱动框架. 个人原创,转载请注明原文出处: http://blog.csdn.net/embbnux/article/details/17712547 参考文章: http://blog.csdn.net/hcx25909/article/details/16860725 内核驱动与普通单片机模块驱动的差别就是在于,写内核驱动的时候,要提供内核调用的接口,使内核能找到相应的驱动入口,用户通过告诉内核要干嘛,内核再去调用那个驱动,驱动的最底层和单片机模块是一样的,同样是对GPIO的操作,配置输入输出,以及某些特殊的寄存器. LED的点亮就是对GPIO的操作 . 对于ARM的GPIO调用需要通过IO映射的方法,要操作内存上对应的地址. 对于bcm2708上的io对应关系,可以查看bcm2835的手册,和stm32基本上是一样的,因为同为ARM体系: 我参考的那博客讲这个比较清楚,可以参考下,由于树莓派的内核以及很好的提供了GPIO调用的接口,即把内存操作封装了很好,这里就不像那篇博客那样再自己写函数通过内存操作来进行GPIO操作,觉得有点麻烦,但是对于学好底层很有用.   一  首先上个驱动程序   这里直接把该程序添加到内核的源码目录里面,也可在自己的目录下,但是要写Makefile. 在/drivers/char/新建rasp_led.c,内核中的kconfig文件和makefile文件,参照前一篇文章 led.c: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37… Continue reading 基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

加载postgres模块后apache无法启动

想在本地搭建一个PostgreSQL的运行环境,完成之后,始终在apache/php环境无法加载postgresql模块。启动的时候无法加载libpq.dll,将postgresql的libpq拷贝到php目录无效,拷贝到windows目录无效,拷贝到windows\system32目录也无效,只好在网上找解决方法。搜到以下方法: refering to the libpq.dll that comes bundled with PHP, like this: LoadFile “C:/php/libpq.dll” (原文地址:http://stackoverflow.com/questions/551734/php-not-loading-php-pgsql-dll-on-windows) 在http.conf文件中增加这一行,完美解决。其实这个答案之前有混淆的问题,比如加载pg目录的libpq.dll,似乎无效,只能用php目录里面自带的libpq.dll。

Firefox 调试 插件/扩展

在一个项目中要开发一个firefox的扩展,结果一直没找到好的调试方法,痛苦的要命。之前在网上找到用chromebug,试了很多次都没有成功,只好在代码里面用代码打印到控制台。 项目已经过去了很久,最近需要修改点代码,重新遇到调试的问题,在网上又搜了一遍,找到了一个方法,测试了一下,居然可以设置断点调试了,可喜可贺。 方法就是修改firefox的设置,在地址栏输入about:config,然后允许chrome调试和远程调试: devtools.chrome.enable => true devtools.debugger.remote-enable => true 然后在firefox里Tools > Web Developer > Browser Console.,打开调试窗口,里面有个debugger,这里就可以开始了。   以下是原文和地址 http://stackoverflow.com/questions/17547364/how-to-debug-a-firefox-extension-with-chromebug/17579253#17579253 Update April 2014: The browser debugger is now integrated in the “Browser Toolbox” and you no longer need to set about:config prefs. Just use the developer tools configuration/settings panel: “enable chrome debugging” and “enable remote debugging”.… Continue reading Firefox 调试 插件/扩展

Redis 未授权访问缺陷可轻易导致系统被黑

Sebug 公布了 Redis 未授权访问缺陷的详细漏洞信息,这个 Redis 未授权访问缺陷可轻易导致系统被黑。详细内容请看下文: 漏洞概要 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。 漏洞概述 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。 漏洞描述 Redis 安全模型的观念是: “请不要将Redis暴露在公开网络中, 因为让不受信任的客户接触到Redis是非常危险的” 。 Redis 作者之所以放弃解决未授权访问导致的不安全性是因为, 99.99%使用Redis的场景都是在沙盒化的环境中, 为了0.01%的可能性增加安全规则的同时也增加了复杂性, 虽然这个问题的并不是不能解决的, 但是这在他的设计哲学中仍是不划算的。 因为其他受信任用户需要使用Redis或者因为运维人员的疏忽等原因,部分Redis绑定在0.0.0.0:6379,并且没有开启认证(这是Redis的默认配置),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,将会导致Redis服务直接暴露在公网上,导致其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。 利用Redis自身的相关方法,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。 漏洞影响 Redis 暴露在公网(即绑定在0.0.0.0:6379,目标IP公网可访问),并且没有开启相关认证和添加相关安全策略情况下可受影响而导致被利用。 通过ZoomEye 的搜索结果显示,有97700在公网可以直接访问的Redis服务。 根据 ZoomEye 最新于2015年11月12日0点探测结果显示: 总的存在无验证可直接利用 Redis 服务的目标全球有49099,其中中国有16477。其中被明着写入crackit的,也就是已经被黑的比例分别是全球65%(3.1万),中国67.5%(1.1万)。 1.1.    漏洞分析与利用 首先在本地生产公私钥文件: $ssh-keygen –t rsa 然后将公钥写入foo.txt文件 $ (echo -e "nn"; cat id_rsa.pub; echo -e "nn") > foo.txt 再连接Redis写入文件 $ cat foo.txt | redis-cli -h 192.168.1.11 -x set crackit $ redis-cli -h 192.168.1.11 $ 192.168.1.11:6379> config set dir /Users/antirez/.ssh/OK… Continue reading Redis 未授权访问缺陷可轻易导致系统被黑

Arduino学习笔记A11 – Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备) [转]

Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备) 关于此帖子的其他讨论,还可以看看 http://geek-workshop.com/thread-2303-1-1.html http://geek-workshop.com/thread-2310-1-1.html 键盘作为经典的输入设备,使用在很多互动中都有特别的优势,比如我们可以通过键盘直接给flash传递按键事件。而无需通过串口之类的特殊接口,虽然我们可以拆一个传统的键盘,然后将里面的按键引出来,但是这样有一个缺点,就是键值不能动态改变并且不能一次多键。使用模拟键盘的话,我们就可以随意在程序设置按键的时间和键值。比如本文的例子就是按下一个按键,模拟键盘就在电脑输入“HELLO WORLD”。 硬件部分: 材料清单: Arduino x1 68Ω电阻 x2 (没有68Ω的话,用50~100Ω电阻也行) 2.2kΩ电阻 x1 (没有2.2kΩ的话,用1.5k~2.2k电阻也行) USB连接线(一端是USB口,另一端是电线) x1 3.6v 稳压管(建议选用功耗0.25~0.5w的)x2 电路原理图: 电路图解说: 1、两个68Ω的电阻起到限流和保护作用,防止在意外情况下损坏计算机的USB端口或单片机的端口。 2、2.2kΩ电阻是上拉电阻,用于分辨总线状态。如果上拉电阻接于D+和+5v端则是高速USB设备,接于D-与+5v端,则是低速设备。此处键盘传输速率不高,接到D-作为低速设备即可。 3、D+和D-上的3.6V稳压二极管D1和D2起到限制数据线上的电平的作用。因为在USB规范中规定数据线D+和D-上的电平范围是3.0V至3.6V,而AVR单片机的输出电平是Vcc。如果单片机的Vcc是5V,在没有D1和D2的情况下将造成电平不匹配,会造成在很多计算机中无法正确识别出USB设备。如果用户系统的Vcc在3.0V至3.6V之间,就可以省略这两个稳压二极管。从这里也可以看出用户系统的Vcc必须高于3V。 4、由于低速AVRUSB所需要的是1.5MHz时钟,而单片机每8条指令就能精确完成一个数据位的采集。所以AVRUSB最小单片机时钟频率是12MHz。并且可以使用的时钟频率有12MHz、12.8MHz、15MHz、16MHz、16.5MHz、20MHz,其他的不支持。所以如果使用最小系统制作此模拟键盘的话8MHz的话,ATMega8L不能用。 ———————— 软件部分: Arduino支持库文件: http://soft1.wmzhe.com/download/ … ino/UsbKeyboard.zip UsbKeyboard.zip (112.45 KB, 下载次数: 1421) 文件下载后解压到arduino编译器的libraries文件夹下面。 注意: 1、UsbKeyboard库中,usbconfig.h里面可以更改USB接线的引脚定义,下面给出一个大概解释(下面的PORTD是指AVR单片机的PORTD,要查询Arduino原理图才能得到是Arduino的哪个引脚): #define USB_CFG_IOPORTNAME D USB输入输出引脚使用AVR单片机的PORTD,如果改成B就是使用PORTB #define USB_CFG_DMINUS_BIT 4 USB的D-接PORTD的第四位PD4,对应Arduino D4 #define USB_CFG_DPLUS_BIT  2 USB的D+接PORTD的第二位PD2,对应Arduino D2 #define USB_CFG_PULLUP_IOPORTNAME… Continue reading Arduino学习笔记A11 – Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备) [转]

Arduino读取键盘[转载]

Arduino读取键盘 这里提供两种方式从Arduino读取键盘。第一种方式是使用矩阵式(Matrix)键盘,另一种方式是使用PS2键盘。 矩阵键盘(Matrix keypad) 首先必须安装Arduino Keypad键盘库(Keypad library),Arduino Keypad键盘库可以从Arduino Playground下载。Arduino Keypad键盘库让你读取矩阵式键盘而不用编写复杂的代码,此键盘库可以读取3×4, 4×4以及各种矩阵结构的键盘。 使用Arduino Keypad键盘库注意事项 该键盘库是属于无阻塞式,按下谋键不放,其余(接下来)的代码还是会继续运行 如果编写控制键盘处运用到delay(),这将造成键盘反应迟顿 按下谋键,getKey()只返回一个键值,而不是自动重复。松开按键时,可以追踪其RELEASED event 安装Arduino Keypad键盘库 下载Arduino Keypad键盘库 将下载了的文件(keypad.zip)解压至Arduino软件的libraries文件夹,如图 打开Arduino软件 选择File>Examples>Keypad,将会看见以下画面,表示Arduino Keypad键盘库安装成功 4×4矩阵keypad示范 根据下面接线连接键盘至Arduino Arduino 4×4 Keypad D2 1 D3 2 D4 3 D5 4 D6 5 D7 6 D8 7 D9 8 上载以下代码至Arduino #include <Keypad.h> const byte ROWS = 4; //… Continue reading Arduino读取键盘[转载]

恶意代码清除实战

恶意代码清除实战 什么是恶意代码,指令集?是二进制可执行指令?还是脚本语言?字处理宏语言?其他指令集等等……以常见的类型举例,那么如果一台服务器存在恶意代码,windows系列机器的恶意代码一般指的是病毒,蠕虫,木马后门,linux系统机器恶意代码一般就是Rootkit。 那么如何快速判断自己的web服务器是否存在恶意代码,是否由于web端的问题导致的内网渗透,或被植入恶意代码作为跳板机、肉鸡等;如何通过手工或者工具的方式快速清除恶意代码,加固系统加固,预防下一次入侵带来的问题。 绿盟科技博客邀请安全服务团队的安全工程师从一个实战案例入手,来讲解如何手工清除恶意代码。现在已知有一台服务器表现不太正常,需要我们来排查这个服务器存在什么问题。   查看系统日志 前提是该服务器的日志策略,审核策略已经开启。 经过查询日志可以发现,攻击者从TerminalService端即远程桌面进行了多次登录尝试,并出现大量相同状态日志,即在进行远程暴力猜测。由于登录失败次数限制,延缓了攻击者猜测出真实口令的时间。 恶意程序如何执行 通过查看系统计划任务可以发现,攻击者使用较为老套的计划任务方式执行木马程序。 查看计划任务属性,便可以发现木马文件的路径。 木马文件和svchost.exe文件名较像,具有一定的迷惑性,属于常规隐藏方式。经过查询可知,svchsot.exe是Troj/GWGhost-O木马相关程序,即该木马的主要组件。 继续追查痕迹 另外,慢慢遵循着入侵者的脚步,可见攻击者动过的手脚不止这一处。 在prefetch文件夹下,prefetch目录下为系统启动的预读取文件,可以看见xiaoma,和抓肉鸡工具,查看创建时间发现早在几天前甚至更早就已经拿下该服务器为肉鸡,只是尚未发现。 另外发现,存在一些.pf文件,显然攻击者希望在系统运行的时候就成为肉鸡,根据系统启动预读取文件.pf的文件名反向搜索,诱敌深入。 可以发现在system目录下,存在.pf文件的链接指向文件,显然也是通过这个方式来开机加载的,使得服务器开机即上线沦为工具,真是放长线钓大鱼啊。 旁敲侧击 查看进程,可以从运行进程上来发现系统内存在的问题; 综上案例,在寻找恶意代码的过程中,根据各种方式查看系统信息是宗旨,根据收集到的信息判断恶意代码的存在位置和触发方式,进而删除恶意代码执行文件,并且侦查恶意代码的附属产品是否有影响系统启动项、系统文件等;将和恶意代码相关的执行文件、服务、链接等一并删除,如果可以的话,最为稳妥的重装操作系统当然是极好的。 对于我们来排查服务器系统存在的问题,我们要从进程、服务、启动项、网络连接、钩子等方面进行检查,并根据安全事件发生的时间节点,在查看系统信息时重点关注该时间节点的前后的日志事件和系统信息变化,如果可以的话可以以时间点为线索进行关联分析,从而摸清楚入侵者的思路和操作步骤。这里也推荐一些常用的小工具,可以帮助我们更好的来获取不同类别的系统信息,从而抓住系统痕迹,找到问题。 痕迹一:进程 推荐小工具:Process explore 查看可疑的进程及其子进程。可以通过观察以下内容: 没有签名验证信息的进程 没有描述信息的进程 进程的属主 进程的路径是否合法 CPU或内存资源占用长时间过高的进程 痕迹二:文件 推荐方式:根据日期排序,检查系统敏感目录文件的改动。 痕迹三:启动项 推荐小工具:Autoruns 这个小工具能够查看到系统的启动项,并且能够对大部分启动项做出说明,同时显示调用注册表路径,同时还能对一些常见的木马运行方式,BHO项、计划任务、镜像劫持等作出检查和侦测。一般判断的标准是,是否该项有注释说明,是否是可疑的常见组件,是否不是管理员添加的项等。 痕迹四:综合分析 推荐小工具:Icesword Icesword功能比较强大,可以对隐藏进程进行检测,并以红色标出,方便我们查找;同时还可以对端口,服务,注册表,文件,线程等进行侦测观察,对没有描述或者奇怪的可疑选项名称进行逐一手工检测。 THE END 进行恶意代码侦查的过程是一个很有趣的过程,逆着入侵者的思路来,就像还原犯罪现场,时光倒流,加上推理和分析,不放过一丝一毫的线索;相信喜欢侦探小说的你,一定会喜欢上恶意代码侦查探索的过程的。 恶意代码清除实战,首发于博客 – 伯乐在线。

比葫芦娃还可怕的百度全系APP SDK漏洞 – WormHole虫洞漏洞分析报告

「You can’t have a back door in the software because you can’t have a back door that’s only for the good guys.」 – Apple CEO Tim Cook 「你不应该给软件装后门,因为你不能保证这个后门只有好人能够使用。」—— 苹果 CEO 库克 0×00 序 最早接触网络安全的人一定还记得当年RPC冲击波,WebDav等远程攻击漏洞和由此产生的蠕虫病毒。黑客只要编写程序扫描网络中开放了特定端口的机器,随后发送对应的远程攻击代码就可以控制对方主机,在控制对方主机后,程序可以继续扫描其他机器再次进行攻击。因为漏洞出在主机本身,想要修复漏洞必须安装补丁才行,但因为很多人并不会及时升级系统或者安装补丁,所以漏洞或者蠕虫会影响大量的机器非常长的时间,甚至有的蠕虫病毒可以感染全世界上亿的服务器,对企业和用户造成非常严重的损失。 Android发布后,我们就一直幻想着能发现一个像PC上的远程攻击一样厉害的漏洞,但是Android系统默认并没有开放任何端口,开放socket端口的APP也非常稀少,似乎出现像PC那样严重的漏洞是不太可能的。但可惜的是,世界上并没有绝对的安全,就在这么几个稀少的端口中,我们真的找了一个非常严重的socket远程攻击漏洞,并且影响多个用户量过亿的APP,我们把这个漏洞称之为WormHole虫洞漏洞。 0×01 影响和危害 WormHole虫洞漏洞到底有多严重呢?请看一下我们统计的受影响的APP列表(还没有统计全): 百度地图 检测版本8.7 百度手机助手 检测版本6.6.0 百度浏览器 检测版本6.1.13.0 手机百度 检测版本6.9 hao123 检测版本6.1 百度音乐 检测版本5.6.5.0 百度贴吧 检测版本6.9.2 百度云 检测版本7.8 百度视频… Continue reading 比葫芦娃还可怕的百度全系APP SDK漏洞 – WormHole虫洞漏洞分析报告