在从学界(粒子物理学博士后研究员)进入业界(数据科学领域)时,Emily Thompson也曾有过犹疑。而现在,在担任Insight项目总监10个月之后,她对数据科学家有了自己独特的看法。近日,她在一篇文章中就当前人们对数据科学的误解谈了自己的看法,主要涉及数据科学家的职责、应用领域、工作环境、职业发展、技能集合等方面。。

误解一:“‘数据科学家’只是‘业务分析师’的一种花哨叫法,他们本质上是相同的”

在数据科学领域,业务分析师仍然占了很大一部分,而数据科学家也构建数据产品,创建软件平台,实现可视化和仪表板,开发前沿机器学习算法。“数据科学家”与“分析师”的最大差别可能是角色的独立性水平。传统的业务分析师需要别人给他们提供已经做过清理并打包好的数据供他们使用;而数据科学家必须是熟练的程序员,他们能够抽取、转换、加载数据,对其他团队的依赖较少。

误解二:“数据科学没什么用,我未必会进入广告行业,或成为一名股市分析员”

数据科学的应用领域同数据科学领域本身一样多样化。计量金融和广告是使用数据挖掘的两个相对传统的行业。医疗行业正在经历一场数据革命。可穿戴技术让收集、聚合、分析大量个人数据成为可能,从如何恰当地锻炼睡眠如何影响情绪。多媒体是另一个数据科学的重大应用领域。比如,像News Corp.、The New York Times和Bloomberg等大型媒体公司都雇用数据科学家研究读者行为和读者保持;Netflix通过数据分析实现影片推荐;湾区创业公司 Samba TV借助机器学习技术实现内容推荐。

误解三:“我希望对世界产生积极的影响……为公司赚钱似乎与此存在利益冲突”

为营利公司工作与对人们的生活产生积极影响并不冲突。例如,Premise是一家实时经济数据跟踪平台。他们使用机器学习技术来发现一些不易发现的问题,比如,帮助发展银行将钱投资到有需要的邻国,Stitch Fix使用机器学习技术从库存商品中选择客户喜欢的衣服等等。

误解四:“在学术领域,我自己说的算,我喜欢这种自由。我不认自己适合公司结构的环境”

企业结构确实跟学术组织不同,但现如今,在以数据为中心的企业中,那种狂人风格也不是那么普遍。如果你是初创公司最初的成员之一,那么你还有机会影响公司的发展方向。而像Facebook和LinkedIn这样的大公司会分成若干较小的工作组,以保留初创公司的工作氛围。虽然可能会有团队负责人,但数据科学团队是高度协作的。而且,越来越多的公司实现了在家工作策略,数据科学家可以拥有“无限”假期。

误解五:“我觉得,如果不知道未来10年我的职业生涯是个什么样子,就贸然离开学术界,风险太大。要是我就职的公司跨了怎么办?”

不管在哪里,职业生涯都不是可以预测的。数据科学家在一家公司任职的时间平均为3到4年。数据科学家会留在有挑战的岗位上,但一段时间之后,会寻找新的挑战。好处是,数据科学领域有许多选择,而且正在不断发展,对数据科学家的需求很高。在任何一家公司任职,不管成功与否,都会获得宝贵的经验。在找第一份数据科学工作时,最看中的应该是一个可以从同事那里学得大量知识的协作环境。另一个需要关注的点是,在从学界进入业界时,要努力构建一个强大的关系网络(参加聚会、出席数据大会),它能为你提供建议和其他团队的内部信息。

误解六:“数据科学是泡沫”

有人认为,一旦数据分析实现自动化,数据科学家的角色就不存在了。但数据量正呈指数增长,没有任何迹象表明从数据中寻找答案的需求会慢下来。即使数据科学的某些部分可以自动化,但这个行业仍然需要数据科学家的技能。数据可能会很乱,无法应用恰当的工具或者无法了解所有相关的特性,这会产生有误导性的结果。而且,受过良好训练的数据科学家对数据有更好的理解,他们是大数据时代应对数据挑战的最佳人选。

误解七:“我担心自己不具备成为数据科学家的技能”

编码能力强很重要,但数据科学不全是软件工程。数据科学家集编码、统计分析和判断思维于一身。广受欢迎的硬技能、统计知识、编码能力是一名优秀数据科学家的基本工具。还有一项不容易明确定义的技能,就是博士研究员阶段所接受的良好训练。但是,要成为一名数据科学家,并一定要有物理、统计或计算机科学学位。June Andrews的研究显示,在LinkedIn从事数据科学工作的人所拥有的学位差别很大。数据科学本身就具有多学科的特点,而且一些公司开始使用领域专属的数据。因此,只要有量化思维,喜欢摆弄数据,对数据如何引导你提出和回答问题心存好奇,那么你就可以脱离学术界,进入数据科学领域。

习惯终端访问文件和目录,每次访问实验室samba服务器都要动鼠标,好麻烦~_~,呵呵,发现自己好懒。在google搜索找到终端访问samba好多方法,下面整理了两种方法:第一种是使用smbclient访问samba服务器,第二种是直接将共享目录挂载到自己的电脑上,强烈推荐第二种。


1. smbclient安装

    sudo apt-get install smbclient

2. 查看目录的所有共享目录

    smbclient -L 10.0.0.11 # 10.0.0.11是samba服务器IP

这里写图片描述

注:敲入上面命令后,在出现提示输入密码时,直接按Enter键(因为此处是匿名访问),结果会显示指定Samba服务器上当前全部的共享目录。(还发现一个小秘密,原来我们服务器Jing的文件夹原来是精华的意思,真佩服我们大师兄+_+。)


3. 连接共享目录

    smbclient //10.0.0.11/Jing  # IP地址后接共享目录

成功后出现提示符smb:/>,下面就可以开始操作。


4. smbclient 常用命令

    ?或help [command]         提供关于帮助或某个命令的帮助

    ![shell command]        执行所用的SHELL命令,或让用户进入 SHELL提示符

    cd [目录]        切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录

    lcd [目录]        切换到客户端指定的目录;

    dir 或ls        列出当前目录下的文件;

    exit 或quit        退出smbclient     

    get file1  file2        从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略

    mget file1 file2 file3  filen        从服务器上下载多个文件;

    md或mkdir 目录        在服务器上创建目录

    rd或rmdir   目录        删除服务器上的目录

    put file1 [file2]        向服务器上传一个文件file1,传到服务器上改名为file2;

    mput file1 file2 filen  向服务器上传多个文件

5. 将共享目录挂载到本地

    mount -t cifs -o username=xxx,password=xxx //10.0.0.11/Jing /home/zhangchengfei/tmp

我的系统环境是Ubuntu15.04,内核版本3.19,挂载方式已经不支持smbfs,最新内核使用cifs

【注】我的环境上实际环境下执行的是下面语句,不需要指定password,并且username可以任意命名:

    mount -t cifs -o username=abc //10.0.0.11/Jing /home/zhangchengfei/tmp

【完】

XcodeGhost“病毒门”之后,美国知名网络安全公司FireEye近日指出,苹果系统中牵涉到2846个应用程序的一个广告库存有潜在的后门漏洞。该库的若干版本允许对移动设备中敏感数据和设备功能的非法访问。

FireEye的相关团队表示,该库的有关信息指出,其属于mobiSage SDK的一个版本。而该团队进一步的研究发现,从5.3.3到6.4.4,共有17个版本的广告库存在后门漏洞。通过从远程服务器加载JavaScript代码,这些后门可以被完全控制,然后在用户的iOS设备中执行以下操作:

  • 抓取音频和截图
  • 监控和上传设备位置
  • 读取/删除/创建和修改App数据容器中的文件
  • 读取/写入和重置App的关键链
  • 把加密后的数据发送到远程服务器
  • 打开URL机制来识别和启动设备上的其他应用
  • 诱导用户点击“安装”按钮来安装非官方应用

然而,在adSage发布的最新版mobiSage SDK v7.0.5中,这些后门已经被移除。由此,FireEye怀疑,这些存在后门的广告库是否由adSage故意设计或者由其中的第三方库/代码所引起。

截止到11月4日,共有2846个应用被发现包含存在潜在后门的mobiSage SDK的相应版本。而且,FireEye共监测到900次可以加载JavaScript代码从而控制后门的连接adSage服务器请求。尽管还没有发现服务器试图发送恶意命令来激活后门的若干功能,这些受影响的应用会周期性的联系服务器来检查新的JavaScript代码。一不小心,恶意的JavaScript代码就可以被下载并执行,从而触发这些潜在的后门。

具体而言,受影响的mobiSage库包含了两个关键性的组件——采用Objective-C实现的msageCore和采用JavaScript实现的msageJS。前者主要实现了潜在后门的底层功能,并通过一个WebView向msageJS暴露了一个接口;而后者主要提供了高层执行逻辑,并通过msageCore的接口触发潜在的后门。两个组件分别拥有各自的版本号。

接下来,本文首先详细介绍msageCore的通信通道和高风险接口。然后,文章再详细分析msageJS如何能够被启动、升级,并触发后门。

msageCore中的后门

通信通道

msageCore实现了一个利用广告库的WebView与msageJS通信的通用框架。该框架利用adsagejs://cmd&parameter格式的URL来传递命令和参数。通过下图中重新构造出的代码片段可以看出,msageCore正是通过从JavaScript的上下文中提取命令和参数,并将其放置到命令队列中。

为了处理命令队列中的条目,msageCore又会把命令分别传递给对应的Objective-C类和方法。

存在风险的接口

每一个被调度的命令最终都会到达msageCore中的一个Objective-C的类。下表列出了msageCore的部分类和他们所暴露出的接口。

msageCore的类名 接口
MSageCoreUIManagerPlugin – captureAudio:
– captureImage:
– openMail:
– openSMS:
– openApp:
– openInAppStore:
– openInAppStore:
– openCamera:
– openImagePicker:
– …
MSageCoreLocation – start:
– stop:
– setTimer:
– returnLocationInfo:webViewId:
– ….
MSageCorePluginFileModule – createDir
– deleteDir:
– deleteFile:
– createFile:
– getFileContent:
– …
MSageCoreKeyChain – writeKeyValue:
– readValueByKey:
– resetValueByKey:
MSageCorePluginNetWork – sendHttpGet:
– sendHttpPost:
– sendHttpUpload:
– …
MSageCoreEncryptPlugin – MD5Encrypt:
– SHA1Encrypt:
– AESEncrypt:
– AESDecrypt:
– DESEncrypt:
– DESDecrypt:
– XOREncrypt:
– XORDecrypt:
– RC4Encrypt:
– RC4Decrypt
– …

从以上表格可以看出,这些接口包含了很多上文中提到的能力(抓取音频和截图等)。而且,通过这些接口搜集到的任何数据都可以采用被加密,并上传到远程服务器。

除了这些接口,该广告库还包含了推荐和安装非官方应用的逻辑。这些应用程序通过调用某些版本iOS中的应有API而引入一些额外的风险。其详细信息可以参看FireEye相关的分析

msageJS中的远程控制

msageJS中包含了与远程服务器及msageCore通信的JavaScript代码。其主要代码文件(夹)包含cfg.jsindex.htmllib(文件夹)sdkjs.js。其中,sdkjs.js包含了adsage的封装对象和执行命令的JavaScript的接口。该接口详细定义为:
adsage.exec(className, methodName, argsList, onSuccess, onFailure);

其中,classNamemethodName分别对应了msageCore中类和方法;argsList可以是一个列表或者字典;onSuccessonFailure为函数的回调参数。例如,利用该接口抓取音频的调用方式为:

adsage.exec("MSageCoreUIManager", "captureAudio", ["Hey", 10, 40], onSuccess, onFailure);

需要特别的注意的是,msageJS的代码并不是以明文文件的方式存储的。它是经过压缩和Base64编码后,放置在了广告库二进制代码的数据段。应用程序启动后,再将msageJS解码出来,并通过index.html来启动msageJS。之后,msageJS会发送一个POST请求到hxxp://entry.adsage.com/d/,来检查更新。如下图所示,服务器端会响应最新版msageJS的相关信息,包括URL下载地址.

目前,FireEye已经在其Network Security(NX)Mobile Threat Prevention(MTP)产品中内置了探测机制。用户可以直接利用其来势被受影响的应用和网络活动。

极客头条,人人都是主编:http://geek.csdn.net ,发现&分享干货!

我们组建了一个极客头条贡献者群,建立这个群,其实目的很明确,就是为了挖掘我们社区中热爱分享的成员。我们可以一块讨论技术,讨论极客头条,讨论社区。

我们认为,每个技术人都会有自己独到的发现。我们每个人将发现分享出来,又能帮助其他人发现更多有价值的东西。我们的一个活跃贡献者对我说:

Google可以帮助我学到知道的东西,极客头条可以让我学到不知道的东西

这种思考很有角度。搜索Google,是因为你知道要找什么,Google后就能看到想要找的内容;如果想不到或者不知道,就找不到。极客头条是开发者自己分享平日发现的内容,各种分类都有,可以很好地帮助我们开阔视野。

这就是我们招募贡献者的原因,让更多的人把自己的发现分享出来。

如果要加入,需要你具有:

  • 极客头条使用经验:在极客头条分享过内容,或经常在极客头条阅读、评论;如果从其他地方看到这条消息,只是为了好奇加入,请在联络前了解极客头条是什么并尝试先分享几条好内容;
  • 要愿意分享、善于发现和探索新奇的事情,希望能够把这件事情长期做下去;我们这个群不会设置考核任务,有福利有惊喜,但如果你成为僵尸粉,就会被移除;
  • 有自己喜欢的技术方向,且阅读范围广,这样分享的内容才能切中大家的需要。

如果你有意向,欢迎联络我:wangdj#csdn.net (将#替换为@),请附简单的个人说明,技术方向,CSDN ID和联络方式(如QQ)。

大多数针对Web应用程序的攻击都非常隐蔽,不容易发现。从2015威瑞森数据泄漏调查报告来看,攻击者平均可以在网络上潜伏205天不被发现。许多组织都是从其他人那里发现安全受到了威胁。近日,InfoWorld资深编辑Fahmida Y. Rashid在一篇文章中分析了Web应用程序遭黑客入侵的五大征兆,并提出了一些确保应用程序安全的建议。

征兆1:应用程序行为反常

应用程序监控是发现可疑行为的最好方式。Fahmida提到了以下几种异常行为:

  • 从数据库中渲染结果页面的时间比以前长了;
  • 应用程序在意料之外的时间展示页面,或者将用户重定向到不同的页面;
  • 在没有营销活动的情况下,网络流量陡增。

不过,这些指标都不能明确地说明应用程序遭到了黑客入侵。但及早调查异常行为的原因总是好过出现了问题再去调查。所以要定期同生产环境中的应用程序进行交互以达到分析正常行为的目的。这样,一旦有异常行为就可以立即发现并展开调查。

征兆2:日志信息异常

如果设置得当,日志可以很好地提供攻击信息。Fahmida分析了如何从以下三类日志中发现异常的日志信息:

  • 数据库日志:从数据库日志中可以查到意料之外的查询;如果数据库日志中短期内出现了多个错误,那么可能有人在尝试SQL注入;
  • Web服务器日志:Web服务器软件会记录出站和入站连接,并针对未经授权的访问或恶意活动记录警告信息;Web服务器通常只会发起到内部数据库的连接,如果存在到公网IP的连接,那么就需要检查一下原因;Web服务器同其它内部资源(如个人文件共享目录、个人电脑)通信也可能是一个遭到入侵的线索;
  • 应用程序日志:如果应用程序创建了管理员级别的账户或者其它特权账户,就要验证下该账户是否合法;从应用程序日志中可以查到时间或地点异常的访问;如果与表单提交或页面加载相关的错误增加,那么有可能是页面遭到了修改。

征兆3:发现了新的进程、用户或任务

定期监控服务器进程,检测服务器何时产生了未知进程,或者已知进程在不正常的时间运行。未知进程通常是应用程序遭到入侵的重大线索。

定期监控服务器上用户的创建,尤其是那些请求提升权限的用户。如果某个用户不应该请求提升权限或进行root访问,那可能是攻击者使用了偷来的凭证。

定期检查Linux服务器上的crontab任务和Windows服务器上的Scheduled Tasks,并与正常的条目做对比。如果出现了新的任务,那可能是应用程序行为异常的线索。

征兆4:文件异常修改

攻击者可能会通过注入JavaScript或重写模块向应用程序添加恶意代码。检查文件时间戳,确保文件没有在未经授权的情况下被修改。如果文件被修改了,那么要搞清楚,与先前的版本相比发生了什么变化。有一些工具可以扫描应用程序查找恶意代码,如Sucuri

Web根目录中出现新文件也是个问题,尤其是脚本或其它类型的可执行文件。如果在Web根目录或服务器上其它地方意外发现了新文件,那么攻击者可能正在利用应用程序向没有防备的访问者提供恶意软件,或者通过运行脚本将他们重定向到其它地方。

如果应用程序使用了第三方插件,那么要确保它们在升级或安装前会进行提示。

征兆5:收到警告信息

如果应用程序在积极传播恶意软件,那么其它安全工具可能会发现,比如浏览器会有安全提示。可以定期通过其它浏览器访问Web应用程序,看看是否有提示信息。此外,还要监控社交媒体和服务台上用户的抱怨邮件。

Fahmida还给出了发现问题后的处理方法。首先,备份应用程序和服务器,用于后续调查取证。如果要从备份还原,那么一定要确保备份中没有恶意软件。其次,应用程序还原完成后,修改所有的密码,包括CMS、管理员账户及个人服务的密码。必要时启用双重认证及设置VPN访问。另外,删除不必要的写权限,避免使用默认密码。最后,定期升级服务器及个人电脑的操作系统和第三方软件。