Mars' blog


  • 首页

  • 分类

  • 关于

  • 归档

安全数据可视化

发表于 2016-06-01   |   分类于 安全

0x00 概述

数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。随着大数据,机器学习,EDA的发展,数据可视化变得越来越重要。在大量的数据面前,传统方法也无能为力,使用可视化的方法可以快速直观地分析/展示数据。

0x01 为什么要可视化数据?

  1. Discovery:用于探索、观察数据,将数据转换为知识。通过视觉展示,能够给人们一些新的观察视角,以便思考、发现这些数据所包含的知识。
  2. Understanding:通过可视化,可能会发现一些传统统计学方法/数理知识无法发现的模式/规律/关联,使得研究人员更好地使用这些数据。
  3. Informed decisions:快速、准确地将数据所包含的信息传递给读者,在损失一些细节的同时,在几秒钟的时间内将信息传递出去。
阅读全文 »

N-gram 在安全领域的应用

发表于 2016-05-05   |   分类于 安全

0x00 什么是N-Gram?

N-Gram是一种在自然语言处理(NLP)中常用的一种概率语言模型(Probabilistic Language Model),常用于语音\手写识别、机器翻译、拼写纠错等等领域。

它的本质就是计算一个句子或者一连串词出现的概率。

1
2
3
4
5
6
7
/*
T 是由 W1,W2,W3,W4,W5 ... Wn组成的一个句子。
*/


P(T) = P(W1,W2,W3,W4,W5 ... Wn) //这个句子出现的概率是里面每一个词出现的概率的叠加。

P(W5|W1,W2,W3,W4) //已经出现第1个至第4个的词的情况下,第5个词出现的概率。
阅读全文 »

入侵检测系统如何降低误报率?

发表于 2016-02-14   |   分类于 安全

0x00 背景

入侵检测技术一般分为异常检测和特征/签名检测,这里主要讨论的是网络入侵检测系统(NIDS)。

  1. 异常检测 (Anomaly detection):假设入侵者活动异常于正常主体的活动。常用的方法有:关联规则、神经网络、SVM、邻近算法、隐含马尔可夫模型、Kalman过滤器、聚类算法、PCA、信息论等等。缺点是:需要训练样本、误报率(异常行为≠入侵行为)高。
  2. 特征/签名检测 (Misuse/Signature detection):假设入侵者活动可以用一种模式来表示,然后将观察对象与之进行比较,判别是否符合这些模式。常用的方法有:关联规则、神经网络、SVM、决策树、遗传算法、贝叶斯网络等等。缺点是:对新的入侵方法无能为力。

主流的入侵检测系统通常是采用异常检测+特征/签名检测。他们都存在的问题就是:

阅读全文 »

理解PHP内存管理

发表于 2016-01-10   |   分类于 编程开发

0x00 内存管理概述

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。

在使用C/C++开发程序的时候,需要格外注意内存管理,申请了内存再使用完后要记得释放,否则可能会造成内存泄漏。如果程序需要常驻内存,那么内存泄漏问题会把机器的内存耗光。所以在PHP这种需要常驻内存的程序来说,内存管理非常重要,它决定了程序的稳定性和执行效率。另外,应用程序向系统申请内存,释放内存的时候会引发系统调用,系统调用提供用户程序与操作系统之间的接口,他会触发0x80 号中断(int 0x80)将CPU从用户态切换到内核态,执行完毕再切换回用户态。在PHP这种对性能要求较高的程序来说,频繁在用户态和内核态切换会带来很大的性能消耗。

介于以上原因,PHP实现了自己的内存管理器(ZendMM), 所以在编写PHP脚本的时候我们不需要对内存进行管理。

阅读全文 »

Joomla 3.4.7 修复的反序列化与SQL注入

发表于 2015-12-14   |   分类于 安全

Joomla! 官方12月21号发布了3.4.7 新版程序,其中修复了Session序列化和一处SQL注入。

反序列化漏洞修复分析

前一阵子 Joomla 的对象注入很火,而官方3.4.6的修复仅仅是严格过滤了X_FORWARDED_FOR、注释了USER_AGENT存入SESSION那一句,见:
https://github.com/joomla/joomla-cms/commit/995db72ff4eaa544e38b4da3630b7a1ac0146264#diff-aba80b5850bf0435954b29dece250cbfL1021
这样只是指哪补哪,治标不治本。看来官方上次的修复只是临时解决方案,这次的更新(3.4.7)算是彻底解决了此问题。

上次的对象注入,需要满足三个条件:

  1. 自己实现session的处理方式,重新实现了 session 存储的read()和write()方法,但是并没有对 session 的值进行安全处理。
  2. Mysql非strict mode下,使用utf8mb4字符 \xF0\x9D\x8C\x86 来截断。
  3. PHP <= 5.6.13 session中反序列化解析的BUG。
阅读全文 »

读懂PHP opcode及其在webshell检测中的应用

发表于 2015-12-01   |   分类于 安全

0x00 什么是opcode

当Zend Engine解析PHP脚本的时候,会对脚本进行词法、语法分析,然后编译成opcode来执行,类似JVM中的字节码(byte codes),只不过opcode不会像class文件那种存在磁盘,而是在内存中直到PHP的生命周期结束。

盗一张图

  • opcode在PHP内核中是如何生成的可以参考 : http://www.php-internals.com/book/?p=chapt02/02-03-02-opcode
阅读全文 »

机器学习实战之Kaggle_Titanic预测

发表于 2015-11-25   |   分类于 编程开发

0x00 介绍

如果你没有听过Kaggle,那你一定要来了解一下它:

Kaggle 为全球顶尖数据科学家举办竞赛活动。那些有着科学难题的公司(比如 NASA)可以通过网络将数据和问题提交给 Kaggle,任何顶尖科学家都可以提交问题解决方案,网站会通过对每位科学家的贡献进行排名。到目前为止,在一场竞赛中至少有 30000 人提交至少一种模型。

简单来说就是一个数据科学竞赛网站,非常有趣。接下来让我们一起学习机器学习吧。

这次的任务是:Titanic-Kaggle

我们的重点是学习机器学习的过程,所以这次不涉及具体的算法实现,而是使用第三方库来实现算法,这里推荐scikit-learn,它提供了许多工具和模型,使用起来非常方便。另外我们还是用了Pandas库( pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 )来提高效率,还有matplotlib 和 Seaborn ,通过图标直观的观察数据。

我们先写一段代码来看看原始数据吧。

阅读全文 »

The arts of origami

发表于 2015-11-01   |   分类于 心有所想

0x00 origami

余憶童稚時,能張目對日,明察秋毫,見藐小之物,必細察其紋理,故時有物外之趣。夏蚊成雷,私擬作群鶴舞於空中,心之所向,則或千或百,果然鶴也;昂首觀之,項為之強。又留蚊於素帳中,徐噴以煙,使之沖煙而飛鳴;作青雲白鶴觀,果如鶴唳雲端,為之怡然稱快。余常於土牆凹凸處,花台小草叢雜處,蹲其身,使與台齊;定神細視,以叢草為林,以蟲蟻為獸,以土礫凸者為丘,凹者為壑,神遊其中,怡然自得。一日,見二蟲鬥草間,觀之,興正濃,忽有龐然大物,拔山倒樹而來,蓋一癩蝦蟆,舌一吐而二蟲盡為所吞。餘年幼,方出神,不覺呀然一驚。神定,捉蝦蟆,鞭數十,驅之別院。年長思之,二蟲之鬥,蓋圖奸不從也,古語云“奸近殺”,蟲亦然耶?貪此生涯,卵為蚯蚓所哈,腫不能便,捉鴨開口哈之,婢嫗偶釋手,鴨顛其頸作吞噬狀,驚而大哭,傳為語柄。此皆幼時閒情也。

《浮生六记·闲情记趣》 沈复

阅读全文 »

利用Calibre.recipe爬取文章

发表于 2015-10-01   |   分类于 心有所想

0x00 前言

读书足以怡情,足以傅彩,足以长才。
—— 《论读书》



多读书,读好书很重要,网上的有些精品资源只能在线一页一页翻着看,颇不方便,故研究了一下Calibre,用其强大的爬虫功能抓取这些文章,并自动生成带目录索引的电子书文件(mobi、epub),以便在Kindle上随时阅读。

阅读全文 »

PHP Challenge 2015

发表于 2015-08-05   |   分类于 安全

0x00背景

在乌云上看到PHP Challenge 2015,深感兴趣,但并无思路,直到看了@Ryat大牛的微博才知道答案。

阅读全文 »

12
Mars

Mars

17 日志
3 分类
RSS

Links

Vicoder Zoe Wang Braid Luck 从容 向晨宇 Firebroo do9gy Wester
© 2018 Mars
由 Hexo 强力驱动
主题 - NexT.Muse