HTTPS≠安全 互联网金融产品要当心

  categories:资料  author:

来源:http://www.infoq.com/cn/articles/wooyunsummit2015-linpeng?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk

2014年伊始,由于国家政策转向利好,互联网金融尤其是P2P网络借贷产品呈现爆发式增长。许多一直关注互联网金融而又害怕政策风险的企业和金融巨头纷纷推出自己的P2P网贷产品。

据《北京商报》2014年报道,几乎多数P2P平台都遭受过黑客的攻击,只不过不少攻击并未曝光,其统计至2013年末公开数据显示,有70家P2P平台因遭遇黑客袭击而关门。而国内众多银行P2P业务站点更是安全漏洞频发。如何保护用户资金以及数据安全,保障对外服务的高可用性,成了横亘在P2P网贷乃至互联网金融从业者心头的难题。

在当当网,林鹏是国内最早一批公司内部组建安全团队的领头人;在网信金融(旗下有P2P网贷、众筹等多项金融业务),他带领团队见证了国内互联网金融风生水起与安全危机并存的2014年。

互联网金融的安全挑战

互联网金融对安全的要求比电商要高得多,这从攻击者的水准就能很容易看出来。“我们碰到的攻击者大多有着专业级别的水准,相比之下之前在电商可能更 偏向传统的小黑客。”林鹏曾发现公司有一部分机器疑似被用0day(该漏洞2周才公布)入侵,攻击者给机器编号,完全是要做持久性的控制。所用 RootKit都是多进程守护,杀死一个进程会触发另一个进程继续监控,这并不像传统小黑客挂一个Webshell就完事的做法。

对于从电商跳到互联网金融领域的林鹏而言,最大挑战来自用户帐号丢失问题。当当的帐号上基本上不存钱或者不会有很多钱,而网信金融上的投资者帐号则是大量的真金白银,对用户而言意义完全不同。其次是DDoS,电商可能很少遇到,但互联网金融几乎家家都会遇到。

另外还有一些电商不太会碰到的问题,比如黄牛党、红包套现、人工打码平台的对抗、以及猪八戒等任务交易平台等。

互联网金融安全的原始手段

互联网金融是一个比较新的领域。国内众所周知的首推支付宝的“余额宝”,然后各种“宝”、P2P、众筹才开始慢慢火起来。此前的人人贷、宜信,都没有进入大众视野。余额宝之后,互联网金融安全才慢慢重要起来。

谈到银行安全,我们用到最多的是U盾和网银插件。那互联网金融用什么来保障安全呢?标配的是HTTPS加密和支付密码,不过这还不够。

对P2P网贷产品而言,保障资金安全的绝招是同卡进出。即不管你拿这张卡投了多少钱,最后的收益都回到投的卡上。如果说要中途换卡,你需要经过一些 很原始的手段,比如人工审核照片,照一张一手拿身份证、一手拿银行卡,还需要露出来脸的照片上传给平台。这对于用户而言可能有些麻烦,但它却是当下最有效 的措施之一。

同卡进出只能保障资金不丢失,如果帐号被盗用,攻击者恶搞式地投一些长期项目,变相”冻结“帐号资金。再加上某些公司业务激进,做了其它资金出口,比如电商业务,那同卡进出也无能为力。

“HTTPS是一种形同虚设的安全措施”

如上所述,互联网金融产品的安全标配是HTTPS加密。但HTTPS真的安全吗?林鹏表示:“对我们这类做安全的人来说,HTTPS已经等同于不安全。如果说要劫持一个HTTPS,尤其是局域网有问题或者小区运营商捣鬼,完全没什么问题,它形同虚设。”而这还没谈及OpenSSL组件近两年频频曝出可窃听漏洞的严峻现状。

林鹏认为比较适宜的一种宣传方式,是告知用户个人信息、资金以及借贷方风控三方面的安全措施。比如网贷的用户都拥有不少资金,那么身份证、银行卡、 手机号等私人信息可以部分马赛克,即使帐号被盗也不会泄露;资金则是同卡进出、用户行为监控体系等;借贷方风控要看这家公司的具体征信体系,技术范畴很难 解决。

还有令人大跌眼镜的案例,某网贷平台为了表示自身交易透明,把员工工作现场在公网上实况直播,后来某白帽子以为是漏洞报告到乌云网。

如果3秒前用户数据库被拖

数据库被拖的案例数不胜数,一旦发现常规做法是敦促或强制所有用户更改密码。林鹏的建议更粗暴激进,如果在电商公司,会对所有留有余额的帐号进行冻结,需电话人工解封。这样虽麻烦,但至少可以保障用户资金安全。

网贷产品稍好,由于同卡进出功能的存在,资金至少不会损失,但要求所有用户更改密码是必要的。当然这个过程会配合用户行为监控体系,以避免改密码时 的二次攻击。其次是对期间资金操作的可撤销,免除用户遭受不必要的资金“冻结”。再其次还有前面提到的私人信息加密和打马赛克。

林鹏在分享中多次提及,目前许多防护手段都还比较原始,需要人工确认。那真正现代化的手段是什么呢?他认为是“用户行为监控体系”。用户、时间、环 境、操作行为、操作对象等构成一位用户的一次行为指纹,用户换操作系统、浏览器、IP地址、非常见时间投资、非常见链接操作等等都会被记录下来。通过上述 用户画像,在P2P平台很常见的黄牛党,就可以在用户验真环节被有效鉴别。

如果你对如何打击黄牛党感兴趣,或者想了解用户行为监控体系如何确定宽与严的界限,2015年7月17~18日,台湾著名黑客大会HITCON将来到北京,与著名漏洞平台乌云网联合举办乌云第二届“白帽子大会”。 这是HITCON会议在创办十年来第一次走出台湾。另外,本次乌云白帽子大会还引入了HITCON的经典环节“算命摊”。台湾和大陆的两代知名黑客与资深 信息安全人士如HITCON创始人TT、乌云创始人剑心、Ucloud创始人季昕华、阿里巴巴副总裁杜跃进博士、IBM安全系统首席架构师李承达等,以及 知名自媒体人池建强将参与该活动

阅读全文

Linux内核中的IO调度器

  categories:资料  author:

来源:http://blog.chinaunix.net/uid-16979052-id-3484476.html

Linux内核2.6开始引入了全新的IO调度子系统。Linux内核提供了CFQ(默认), deadlinenoop三种IO调度器。本文首先介绍三种IO调度器各自的特点和应用场景,之后会介绍Linux内核提供的为每一个块设备指定IO调度器和调整IO调度器参数的接口。

  1. CFQ(Complete Fair Queuing)完全公平的排队

CFQ实现了一种QoSIO调度算法。该算法为每一个进程分配一个时间窗口,在该时间窗口内,允许进程发出IO请求。通过时间窗口在不同进程间的移动,保证了对于所有进程而言都有公平的发出IO请求的机会。同时… 阅读全文

Bootstrap后台管理模板集合

  categories:资料  tags:  author:

Bootstrap是Twitter推出的一个用于前端开发的开源工具包。是目前最受欢迎的前端框架之一。下面为大家推荐17个免费的Bootstrap后台管理界面模板。

1. Admin Lite

bootstrap模板 bootstrap后台模板 Bootstrap教程

AdminLTE – 是一个完全响应式管理模板。基于Bootstrap3的框架。高度可定制的,易于使用。支持很多的屏幕分辨率适合从小型移动设备到大型台式机。

参考地址: https://www.almsaeedstudio.com/themes/AdminLTE/index2.html

体验了,一下感觉很好!!!

https://github.com/almasaeed2010/AdminLTE

 

2. Dashboard Sidebar

bootstrap模板 bootstrap后台模板 Bootstrap教程

这是一个管理后台模板,拥有控制面板或仪表板。这个模板有一个可折叠的工具栏菜单,并且有可以作为一个数据网格的表格。

参考地址:http://www.bootstrapzero.com/bootstrap-template/dashboard-sidebar

没太看懂!

3. DevOOPS

bootstrap模板 bootstrap后台模板 Bootstrap教程

DevOOPS是一个自适应免费管理仪表板主题,可以用在你的web项目中。

参考下载地址:https://github.com/devoopsme/devoops/archive/master.zip

体验一下, 很好, 比较轻量级, 很好很好!

4. Blocks

bootstrap模板 bootstrap后台模板 Bootstrap教程

Blocks 是一个轻量级的管理仪表板模板,源于 Cyfe 。 Blocks实质上是一个单页模板,所有你需要的,配置都并排放在一个页面中。

参考地址:http://www.bootstrapzero.com/bootstrap-template/blocks

5. DashGum

bootstrap模板 bootstrap后台模板 Bootstrap教程

DashGum 一个很棒15页的Bootstrap管理主题或仪表板。它拥有图表,表格,很多面板,日历,通知,待办列表等功能。

 

6.

阅读全文

Kafka、Storm、HDFS整合实践

  categories:mq, 资料  author:

在基于Hadoop平台的很多应用场景中,我们需要对数据进行离线和实时分析,离线分析可以很容易地借助于Hive来实现统计分析,但是对于实 时的需求Hive就不合适了。实时应用场景可以使用Storm,它是一个实时处理系统,它为实时处理类应用提供了一个计算模型,可以很容易地进行编程处 理。为了统一离线和实时计算,一般情况下,我们都希望将离线和实时计算的数据源的集合统一起来作为输入,然后将数据的流向分别经由实时系统和离线分析系 统,分别进行分析处理,这时我们可以考虑将数据源(如使用Flume收集日志)直接连接一个消息中间件,如Kafka,可以整合 Flume+Kafka,Flume作为消息的Producer,生产的消息数据(日志数据、业务请求数据等等)发布到Kafka中,然后通过订阅的方 式,使用Storm的Topology作为消息的Consumer,在Storm集群中分别进行如下两个需求场景的处理:

  • 直接使用Storm的Topology对数据进行实时分析处理
  • 整合Storm+HDFS,将消息处理后写入HDFS进行离线分析处理

实时处理,只要开发满足业务需要的Topology即可,不做过多说明。这里,我们主要从安装配置Kafka、Storm,以及整合 Kafka+Storm、整合Storm+HDFS、整合Kafka+Storm+HDFS这几点来配置实践,满足上面提出的一些需求。配置实践使用的软 件包如下所示:

  • zookeeper-3.4.5.tar.gz
  • kafka_2.9.2-0.8.1.1.tgz
  • apache-storm-0.9.2-incubating.tar.gz
  • hadoop-2.2.0.tar.gz

程序配置运行所基于的操作系统为CentOS 5.11。

Kafka安装配置

我们使用3台机器搭建Kafka集群:

192.168.4.142   h1
192.168.4.143   h2
192.168.4.144   h3

在安装Kafka集群之前,这里没有使用Kafka自带的Zookeeper,而是独立安装了一个Zookeeper集群,也是使用这3台机器,保证Zookeeper集群正常运行。
首先,在h1上准备Kafka安装文件,执行如下命令
cd /usr/local/
wget http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz
tar xvzf kafka_2.9.2-0.8.1.1.tgz
ln -s /usr/local/kafka_2.9.2-0.8.1.1 /usr/local/kafka
chown -R

阅读全文

什么是java的内存泄漏

  categories:资料  author:

来源:互联网

Java最显著的优势之一就是它的内存管理机制。你只需简单创建对象,然后Java垃圾回收机制便会小心的分配和释放内存。然而,事实并非如此简单,因为在Java应用程序中经常发生内存泄漏。

本教程说明了什么是内存泄漏,为什么会发生,以及如何防止它们。

1.什么是内存泄漏?

内存泄漏的定义: 对象不再被应用程序使用,但是垃圾回收器却不能移除它们,因为它们正在被引用。

要理解这个定义,我们需要理解对象在内存中的状态,下图说明了哪些是未被使用的以及哪些是未被引用的。

从图中可以看到被引用的对象和未被引用的对象。未被引用的对象将会被垃圾回收器回收,而被引用对象则不会被回收。未被引用的对象理所当然是未被使用的,因为没有其他的对象引用它。然而,未被使用的对象并不一定是未被引用的,其中一些是被引用的。这就是内存泄漏的起因。

2.为什么会发生内存泄漏?

让我们来看看下面这个例子,看看为什么内存泄漏会发生。在如下例子中,对象A引用了对象B。A的生命周期(t1-t4)要比B的生命周期(t2- t3)长很多。当B不再用于应用中时,A仍然持有对它的引用。在这种方式下,垃圾回收器就不能将B从内存中移除。这将可能导致出现内存不足的问题,因为如 果A对更多的对象做同样的事情,那么内存中将会有很多无法被回收的对象,这将极度耗费内存空间。

也有可能B持有大量对其他对象的引用,这些被B引用的对象也不能够被回收。所有这些未被使用的对象将会耗费宝贵的内存空间。

3.如何阻止内存泄漏?

以下是一些阻止内存泄漏的快速动手技巧。

(1)注意集合类,例如HashMap,ArrayList,等等。因为它们是内存泄漏经常发生的地方。当它们被声明为静态时,它们的生命周期就同应用程序的生命周期一般长。

(2)注意事件监听器和回调,如果一个监听器已经注册,但是当这个类不再被使用时却未被注销,就会发生内存泄漏。

(3)”如果一个类管理它自己的内存,程序员应该对内存泄漏保持警惕。”[1] 很多时候当一个对象的成员变量指向其他对象时,不再使用时需要被置为null。

4.一个小测验:为什么在JDK6中substring()方法会引起内存泄漏?

为了回答这个问题,您可能需要阅读JDK6和7中的substring() 阅读全文

开发Kafka应用

  categories:mq, 资料  author:

来源:http://blog.csdn.net/suifeng3051/article/details/37602025

一、整体看一下Kafka

我们知道,Kafka系统有三大组件:Producer、Consumer、broker 。
producers 生产(produce)消息(message)并推(push)送给brokers,consumers从brokers把消息提取(pull)出来消费(consume)。
二、开发一个Producer应用
     Producers用来生产消息并把产生的消息推送到Kafka的Broker。Producers可以是各种应用,比如web应用,服务器端应用,代理应用以及log系统等等。当然,Producers现在有各种语言的实现比如Java、C、Python等。
     我们先看一下Producer在Kafka中的角色:
        
2.1.kafka Producer 的 API
Kafka中和producer相关的API有三个类
  • Producer:最主要的类,用来创建和推送消息
  • KeyedMessage:定义要发送的消息对象,比如定义发送给哪个topic,partition key和发送的内容等。
  • ProducerConfig:配置Producer,比如定义要连接的brokers、partition class、serializer class、partition key等
2.2下面我们就写一个最简单的Producer:产生一条消息并推送给broker
  1. package bonree.producer;
  2. import java.util.Properties;
  3. import kafka.javaapi.producer.Producer;
  4. import kafka.producer.KeyedMessage;
  5. import kafka.producer.ProducerConfig;
  6. /*******************************************************************************
  7.  * BidPlanStructForm.java Created on 2014-7-8
  8.  * Author: 
阅读全文

SolrCloud和ElasticSearch(ES)比较

  categories:资料  author:

来源:http://www.wxdl.cn/index/solr4-solrcloud-elasticsearch-es.html

solrcloud 既即将发布的solr4.0,ElasticSearch--一个炒的较火的开源项目(ElasticSearch)。

SolrCloud(SC)对solr3.0进行较多的改进。具体可参考Solr官方介绍 ,目前Solr4.0还没正式发布,但solrcloud可以run ES 主要正对solr3.0的缺点而开发。而SC在solr3.0的基础上做了大量工作,新的SC的架构和ES在整体上很相似了。所以原先ES相对与 solr3.0的优势对于SC就不明显了。 但目前这两项目在开源中走在最前面。所以我们决定对ES和SC做详细的评估,以决定我们最后的选择。详细测试结果发布在下面两篇文章中 SolrCloud performance test ElasticSearch(ES) performance Test 这里补充两点:1.SC内嵌jetty和zookeeper。2. ES实用netty实现自己的web容器。 对于上面两个结果中SolrCloud 的结果doesn’t make sence。由于要在规定的时间内完成评估,所以分别对es和sc的源码进行了概略的研究。寻找她们各自search和index策略。再三check了 测试环境,并且用yourkit等工具分析了ES和SC的运行状态和性能。并没有找到SC为什么出现这样异常的表现。昨晚总于在一些异常状态中有了新的发 现。SC中jetty设置了默认的线程池大小,为100,这直接影响了在大量请求到来时SC的处理能力。而ES线程数理论上是没有限制的。所以我们将jetty的线程池大小改为60000个以保证不会是因为线程数受限而影响其性能。新的测试结果暂时还未发布。

总结:
比小新的SC和ES的测试结果后,可以看出,ES在search和index的性能上高于SC,无论是单独进行search或index,还是两者同时进 行。ES不用依赖很多的包(其实是通过将很多open source源码加入自己项目实现的),ES配置很简单,很方便就能运行,基本不用调优。但ES community并不活跃,严重缺乏文档,主要代码贡献者和维护者只有一个人,另为ES的源码看起来并不容易,很难理清其中关系,调用层次太深。相对而 言SOLR有成熟活跃的社区,大量牛人维护和contributor,文档齐全,代码易读性强。 在扩张性上不相上下,当然必须基于完全理解ES的源码后。 ES比较适合较小的search应用。稳定性还不好说,因为实用者不多,目前仅有的一些商用公司也仅将其应用于小项目和公司内部。对比solr则有大量的 商业产品应用,经过了足够的考验。所以最终我们倾向于实用SC。不过ES也有其自身的优势,目前看至少其吞吐量表现较好,也值得大家深入研究其优点。

开始solr4.0(cloud)之前我们先看看ElasticSearch(ES)与solr3.6对一些常见feature支持情况的比较。强调这里是solr3.6而非solr4.0。两者的根本区别是后者基于分布式的架构。


1
上面是一些常见feature的比较。这里要说的是最后的两项。

索引的rebuild 索引的重构需要对源数据的存储。这是搜素引擎自己要关心的安全问题。目前存储选择主要是传统的数据库或者分布式数据库(DDB)和类似的NoSql数据 库。传统的数据库免费的自然是MySql。商业数据库以oracal居多。而云存储的备份选择就比较多了:

阅读全文

如何编写YARN应用程序

  categories:资料  author:

1.     概述

YARN是一个资源管理系统,负责集群资源的管理和分配。如果想要将一个新的应用程序运行在YARN之上,通常需要编写两个组件:客户端和 ApplicationMaster。由于这两个组件编写非常复杂,尤其ApplicationMaster,需要考虑RPC调用、任务容错等细节,所 以,往往由专业的开发人员编写这两个组件,并提供给上层的应用程序用户使用。如果大量应用程序可抽象成一种通用框架,那么只需实现一个客户端和一个 ApplicationMaster,然后让所有应用程序重用这两个组件即可,比如MapReduce是一种通用的计算框架,YARN已经为其实现了一个 直接可以使用的客户端—MRClientService和ApplicationMaster—MRAppMaster。

本文主要介绍了如何让一种新的应用程序,或者新的计算框架,运行于YARN之上。正如前面介绍的,用户需要编写两个组件完成该任务:客户端和 ApplicationMaster,其中,客户端负责向ResourceManager提交ApplicationMaster,并查询应用程序运行状 态,ApplicationMaster负责向ResourceManager申请资源(以Container形式表示),并与NodeManager通 信以启动各个Container,此外,ApplicationMaster还负责监控各个任务运行状态,并在失败是为其重新申请资源。

2.     YARN Appcalition涉及到的RPC协议和主要编写步骤

(1) 涉及到的RPC协议

通常而言,编写一个YARN Appcalition涉及到3个RPC协议,分别为:

1)  ClientRMProtocol(Client<–>ResourceManager)

Client通过该协议将应用程序提交到ResourceManager上、查询应用程序的运行状态或者杀死应用程序等。

2)  AMRMProtocol(ApplicationMaster<–>ResourceManager)

ApplicationMaster使用该协议向ResourceManager注册、申请资源以运行自己的各个任务。

3)  ContainerManager(ApplicationMaster<–> NodeManager)

ApplicationMaster使用该协议要求NodeManager启动/撤销Container,或者获取各个container的运行状态。

(2)客户端编写流程

步骤1 Client通过RPC函数ClientRMProtocol#getNewApplication从ResourceManager中获取唯一的application ID

步骤2  Client通过RPC函数ClientRMProtocol#submitApplication将ApplicationMaster提交到ResourceManager上。

(3)ApplicationMaster编写流程

步骤1 ApplicationMaster通过RPC函数AMRMProtocol#registerApplicationMaster向ResourceManager注册。

步骤2 ApplicationMaster通过RPC函数AMRMProtocol#allocate向ResourceManager申请资源(以Container形式表示)。

步骤3 … 阅读全文

Arduino与树莓派哪个是更适合

  categories:资料  tags:  author:

类别:相 关,日期:2014年7月27日,访问次数:74,评论次数:0

230250xpuswr1watuzdbze.jpg

你想做硬件DIY吗?它们哪个更适合你?

如果你很熟悉电子DIY,那么应该听过Arduino和Raspberry Pi(树莓派)的特点对比。你也许甚至会猜测到,像我之前认为的,它们两个是处理相似问题的相互竞争的硬件平台。

实际上,Arduino和树莓派非常不一样。对于初学者来说,树莓派是一台完整功能的计算机,而Arduino只是一个微控制器,它仅仅是组成计算机的一个模块。

这里有一些指引来帮助你区分Arduino和树莓派,然后确定这两个DIY设备中的哪个更适合你的需求。

概述

树莓派和Arduino最开始都被设计成教育工具,这也是它们现在这么流行的原因,它们两个都非常容易学习使用。

树莓派来自英国。开始的时候,发明者Eben Upton和他在剑桥大学计算机实验室的同事对学生数量的逐渐减少和差劲的技能感到非常懊恼,于是想办法解决这个问题。他们设计的树莓派是一台便宜的方便 修改的计算机,目的是提高动手能力。Upton在2006年设计了树莓派的原型,在2012年4月的时候第一次可以在市场上买到。

另一个,Arduino诞生于意大利。它是根据发明者Massimo Banzi和合伙人想到这个点子的一个酒吧的名字命名的。Banzi是伊夫雷亚互动设计学院的一名教师,他想为他学设计的学生做一个简单的硬件原型制作工具。

作为教育工具,Arduino和树莓派都适合初学者。而在了解了它们的硬件和软件特点之后,很明显它们会应用到完全不同的项目中。

这里大概列出了两者规格上的最大差异

Arduino Uno树莓派Model B
价格$30$35
体积7.6 x 1.9 x 6.4 cm8.6cm x 5.4cm x 1.7cm
内存 0.002MB512MB
主频
阅读全文


快乐成长 每天进步一点点