[tips]如何知道电脑上的哪个文件是从哪来的


=Start=

缘由:

前段时间在做DLP需求整理的时候想到的一个问题,在此记录一下,方便以后参考。

正文:

参考解答:

因为我的办公环境从Windows切换到macOS很久了,手边上也没有合适的Windows系统环境做对比测试,所以在macOS上对多个文件进行抽样测试验证成功之后,以为是Office类文件默认都有的meta属性,但经过深入一点的搜索研究之后才发现这是macOS上独有的(不局限于Office类文件),可以对分析和溯源提供很大的帮助。

来源(Where from)

kMDItemWhereFroms

Describes where the file was obtained from.

For example, a downloaded file may refer to the URL, files received by email may indicate the sender’s email address, message subject, etc.


查看方法一(GUI操作):
选中文件,然后“鼠标右键”-“显示简介”,在“更多信息”下有“来源”字段用于表示该文件是从哪里获取的。

查看方法二(命令行操作):

xattr命令

xattr path_to_file.docx
xattr -p com.apple.quarantine path_to_file.docx
xattr -p com.apple.metadata:kMDItemWhereFroms path_to_file.docx

mdls命令

mdls -name kMDItemWhereFroms path_to_file.docx
mdls path_to_file.docx

查看方法三(代码操作,以Python举例):

$ pip install xattr

>>> import xattr
>>> xattr.listxattr('/path/to/download_from_internet.docx')
(u'com.apple.metadata:kMDItemWhereFroms', u'com.apple.quarantine')
>>>
>>> xattr.getxattr('/path/to/download_from_internet.docx','com.apple.metadata:kMDItemWhereFroms')

参考链接:

How can Mac OS X save details about the URL from which a file has been downloaded?
https://superuser.com/questions/214934/how-can-mac-os-x-save-details-about-the-url-from-which-a-file-has-been-downloade

kMDItemWhereFroms
https://developer.apple.com/documentation/coreservices/kmditemwherefroms

http://en.wikipedia.org/wiki/Extended_file_attributes#OS_X

Editing or deleting file metadata in OS X
https://tinyapps.org/blog/201011300700_os_x_edit_metadata.html

Where is the ‘Where from’ meta data stored when downloaded via Chrome?
https://apple.stackexchange.com/questions/110239/where-is-the-where-from-meta-data-stored-when-downloaded-via-chrome

Read kMDItemWhereFroms attribute with file integrity module
https://github.com/elastic/beats/issues/5336

Zone Identifier == kMDItemWhereFroms?
https://thinkdfir.com/2018/06/17/zone-identifier-kmditemwherefroms/

File Metadata Attributes Reference
https://developer.apple.com/library/archive/documentation/CoreServices/Reference/MetadataAttributesRef/Reference/CommonAttrs.html

=END=


《“[tips]如何知道电脑上的哪个文件是从哪来的”》 有 5 条评论

  1. 如何有效杜绝员工github泄密?应用漏洞数量的增降改变 VS 安全与研发能力向上汇报?数据安全运营怎么做?| 总第140周
    https://mp.weixin.qq.com/s/9dsg3UifXzpA6HWVW6dYvQ
    `
    # 做安全,尤其是在企业里面做安全,有一个基本认识是一定要有的——没有100%/绝对的安全,所以也就不要妄想着什么‘杜绝’/‘100%避免’等美事了

    # 话题1: 如何有效杜绝员工 github 泄密?看起来要想根除,只能把代码圈起来,不让员工通过各种途径带走才行。求教各位大佬是用什么方式来规避这种风险的?完全杜绝估计要彻底牺牲效率,有什么能平衡的好的方案吗?

    A1:技术上,DLP+github代码泄露监控;管理上,重罚+全员通告。但很难杜绝,DLP总有对抗手法,如果真想带走代码,一般都上传github私有账号和各类网盘。

    Q:“DLP+github代码泄露监控”有在用,但是效果不好,有什么好的落地经验吗?DLP 对代码的效果不是很好,github 私有项目基本不可能发现,公用项目也很难做到全面发现,要依赖大量的规则和运营。

    A2:断网+VDI云桌面方式。目前实际落地多的还是事前监控、DLP、事后处罚,其中终端DLP尽可能多覆盖各种客户端工具和浏览器,开发环境离线。不过DLP,离线等方案可能会影响正常工作,github监控+处罚好点。没办法杜绝,只能提高检测的手段和能力,然后加大处罚力度进行威慑。

    A3:禁止github访问,或者能否做到上传和下载分开,禁止上传。不过我们公司限制是禁止不了,开发很多要用,尤其是开发过程中需要和大量第三方机构联调,没法断网。安全要平衡研发效能。

    A4:github禁了怎么借鉴学习?不同行业的需求不一样,以互联网公司为例,应该没公司能禁止访问github。研发常需要下载github部分代码组件直接copy过来,或者查看gitbook的博客文档。

    另外VDI云桌面方式怎么整iOS开发?做iOS开发的必须得用mac,mac上又没有合适的数据DLP工具。

    A5:规章制度定好,宣贯好,技术手段能监控发现的就发现,事件驱动,发现了处罚。如果想着前期各种断,为了极小部分的泄露,影响了整个研发,我认为不应是安全的价值。

    而说到mac电脑,简直就是定时炸弹,但是技术人员很多都有自己的代理,上传代码的流量本来就不多。还有些个人电脑,外包开发的代码等等。github现在随便私有仓库,扫描基本废了。

    A6:现在的dlp对mac的管控也是很强的,终端dlp检测git push的动作。

    Q:是不是可以尝试区分正常 clone pull 代码,上行的流量应该很小,有能实现这个功能的dlp吗?

    A7:把push写进脚本,这种事件还要区分 github 还是内部 gitlab,我甚至可以用三方包来帮我做git push。要完全杜绝不可能,要绕过有好多方法,只能选个能解决掉90%的方案。

    A8:想杜绝只能断网+VDI,不然只能持续对抗了。除非对代码防护要求特别高的公司,否则杜绝看来是不可能。因为还有gitlab、saas、gitee等一大堆代码托管平台。

    A9:是的,github泄露监控大部分都是针对github,我之前运营SRC收到过码云、语雀泄露敏感信息。

    A10:VDI解决不了用mac本开发的问题,目前好像没有 mac 的vdi 产品。技术手段管控总有绕过的方法,还是得靠管理手段,制定好处罚措施,而且要看内部员工上传github具体动机有哪些,有些技术特别喜欢把github当记事本和随手备忘录。

    A11:我们正巧最近也是梳理了公司内部代码管控的现状,也制定了一些安全方案来降低代码风险。这块还是得平衡业务和安全,抓大放小,不能因为安全影响业务效率。大部分企业的代码泄露还是内部人员为主,这块还是需要管理+技术结合,首先需要通过建立公司级的数据安全管理体系和制度,把代码上升到公司核心数据的地步,让开发人员先树立起这个意识,然后针对代码仓库的认证、权限管控都是基本面保障手段。

    咱们安全人员认知中的dlp+代码监控也只能一定程度防范,比如现在各种开源工具、各种公有云都能监控github代码泄露,国内很多gitgee类似的可能就成为视野盲区。代码防泄露目的还是防范大面积泄露,如果要实现风险最小化,那管控措施一定很严,会影响业务效率。像在互联网公司不让研发上网、不让访问github基本不太现实。

    A12:其实大家都知道,监控,宣传,处罚,只不过付出多少成本,做到什么程度,得到什么收益而己。我们应该相信开发人员,防君子不防小人,多宣传,强处罚,大家意识强了,就收敛了。

    A13:我们目前正在实践的一种治理思路,就是联合基础架构侧提供的Saas化的IDE,来确保代码不落本地,进而管控权限和减少代码泄露途径;比较类似你说的把代码圈养起来。

    效果呢,还在小范围内灰度,对于我们安全侧需求比较容易达成,上面说的风险面基本可以收敛;主要对服务提供方的要求高,高可用性和体验做到接近原生IDE,另外某些场景也暂时支持不了,路还比较漫长,所以目前主要还是搭配着上面那些常规安全手段在做。

    A14:云ide是好东西,类似研发场景下的VDI,研发效能有需求,安全团队搭车就好,看看安全能力怎么放进去,比如安全研发的需求。

    # 话题2:领导问了个问题:应用漏洞数量的增降改变,是因为研发水平提高或下降了?还是安全部门挖漏洞的能力变强了,或者是应用的覆盖度上去了。如何通过一些指标和领导说明清楚这个问题呢?求各位大佬指点。

    A3:急于套模板都会陷入不实,领导已经在追根溯源了,这个时候第一步要做的就是深入分析,然后再抽象归类,减了为什么,首先要避免的就是安全挖漏洞马虎了,理想的是开发形成了方法规避,那么这个方法有没有被植入流程,还是就出过问题的团队在用,值不值得推广,增了为什么,安全团队增加了什么能力,之前覆盖多少,现在覆盖多少,大概要有个数;如果有机制了,那么为什么失效了;还有一种可能就是有漏洞库的更新,虽然也可以归入安全能力提高但最好分开。

    这个东西不要避讳,你给我的是什么人,我只能挖市面上已公开的漏洞,未知的我就是覆盖不到,又没高手专家又没实验室,漏洞情报更新了,规则库更新了,谷歌微软都有漏洞,凭啥要求安全不遗漏漏洞呢,有开发就会有漏洞。但是,如果利用的是已知漏洞,那确实不该,立正挨罚,从机制上改正,这个批评得没毛病。

    # 话题3:大家能否讨论下数据安全运营是怎么做的?

    A1:得要先做好分级分类,不过这个基本上就拦掉大部分人的脚步了。

    Q:人工分级?人工打标签?数据安全,是不是还有数据脱敏,数据维护、访问审计?

    A2:国密改造,三级数据不要求脱敏了吗?数据好分级不好落实啊,尤其针对旧数据的处理。打标签可以是手工方式也可以是计算引擎自动打标。

    A3:标签本身也是要不断迭代吧,是不是有标签树。个人感觉,先把数据安全搞起来再谈运营吧,数据运营和安全运营一样吧,你得先有基建,才能谈运营。现在数据安全基本的都有了。到了该从运维转向运营的阶段了。数据安全运营可以考虑上终端DLP和网络DLP,分级分类现在是合规驱动了。现在很多成熟的商业化分级分类产品。另外给数据打完标签以后是不是该脱敏了?

    A4:对于结构化数据打标容易,但是企业内还有大量非结构化的文档 也会包含大量敏感信息,打标就没有那么容易。数据又是不断衍生和变化的。关键还在于源头管控和使用安全。

    A5:数据安全这块各家场景各不相同,比应用安全还吃场景。还是先厘清自家目标,有哪些外部要求和自家管理诉求、技术方案都大同小异可互相借鉴、不涉及具体场景的数据安全大家也不好提意见,怕误导。

    Q:有哪些技术方案可以借鉴的呀?

    A6:数据分类分离太难了,要把单位里的所有文件都要查找出来,才好每个文件去分类分级。我们想做但推动不了,公司大了拉齐都挺难,不是安全部门力量就行的。数据分级分类,得懂业务也懂技术。

    A7:个人觉得上DLP这个,还是初步建设阶段,运营需要将检测指标量化,并且指标能带来价值。例如:DLP的检测场景梳理出来,然后制定一定的指标关联风险场景,一旦超出指标,那么定义为风险等等,这才算运营。

    A8:涉及全单位各部门推动。网络间要打通,有点复杂,还在理。不可能的,安全部门得量力而行,先从自己够的着的数据开始以及合规(或者违规处罚力度大的)开始,比如用户个人信息保护。金融的,按照数安法和个保法定了内部的标准,优先把等保系统的数据先处理了,根据这些系统的数据,定了数据脱敏规范。

    A9:数据分类分级,这个靠制度,靠人。分完了呢?哪里有?哪儿用了?怎么用?最终还要有监测识别手段,然后每个公司的偏好也不同。

    首先得聚焦,把第一阶段要治理的数据限定一个list,然后才是开始考虑从生命周期开始,梳理归口分类分级。一开始就想着数据治理做全,其实从各方面来说都不如先搞高级别的金融数据,如四级金融数据,三级金融数据。做了而不管的,流于形式。

    A10:目前比较好落地的多是办公数据的DLP:网络上上一套防敏感数据外发外泄,终端上上一套防敏感数据明文存储,业务数据中敏感数据类型、场景需求各不相同,加密和脱敏技术通用策略不太通。

    A11:偏向三级数据内也区分场景,做类似催收场景、征信场景的实验下看效果,大而全感觉还没落地就黄了。数据治理,从入门到死在分类分级定义上。当范围缩小到一定程度,自然就能往下走,否则你就是去的太广了。数据安全治理说白了是数据治理的一个分支而已,而且数据团队对业务团队有很多输出,业务团队要仰仗数据团队。所以数据团队牵头最能搞下去。可以先整理基础数据台账和行业及企业数据分级分类标准,再结合企业典型数据场景去做分析会好一些。

    A12:不同阶段关注点不同,始终还是要围绕公司发展,业务发展自上而下的落实关注关键风险。安全是为业务服务,做数据分类分级是为了更好的做数据安全,数据的类别,级别应用在安全管控措施上,如数据加密,数据脱敏。

    A13:我记得一位大哥说的很好:最好去做数据治理+安全而不是数据安全+治理,数据安全太强业务关联了,外挂式最多只能做校验。我们行就是数据团队在牵头做,安全团队只是支持,因为银行的数据治理靠安全团队是做不了的,业务数据的分级分类也是数据团队在做。

    最后,不管是数据安全还是网络安全,信息安全,我们应分析他们的暴露面,风险点在哪里,然后再采取对应的手段或措施。
    `

  2. How do mdfind and mdls derive what metadata a file has and where is it stored?
    https://apple.stackexchange.com/questions/430802/how-do-mdfind-and-mdls-derive-what-metadata-a-file-has-and-where-is-it-stored
    `
    mdfind consults the Spotlight database in order to provide search results faster than scanning the whole file system for each query.

    mdls on the other hand does not rely on the Spotlight database, as it doesn’t need to scan the file system – you’re specifying the file you want to examine directly. It does however rely on the Spotlight API in order to provide the data requested.
    `

    mac OS X file metadata utilities (finds files matching a metadata query)
    https://www.real-world-systems.com/docs/mdfind.1.html

    mdls – List the metadata attributes for a specified file.
    https://ss64.com/osx/mdls.html

  3. How Does Spotlight Work?
    https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/MetadataIntro/Concepts/HowDoesItWork.html
    `
    Spotlight provides fast desktop searching by extracting metadata in the background and storing the indexed metadata for future searches. When a query is made, the indexed metadata is searched for matching files.
    `

    Spotlight Metadata Attributes
    https://developer.apple.com/library/archive/documentation/CoreServices/Reference/MetadataAttributesRef/Reference/CommonAttrs.html

    Where does Spotlight store its metadata index?
    https://superuser.com/questions/82106/where-does-spotlight-store-its-metadata-index
    `
    The metadata is inside a hidden .Spotlight-V100 folder at the root of the indexed volume. #未找到
    `

    How to Spotlight Search Across Every Mac With Osquery
    https://www.kolide.com/blog/how-to-spotlight-search-across-every-mac-with-osquery-c0a2cabf-6e41-433d-ac01-d5690e2448cf
    `
    You can check to see what metadata attributes are present on your own device by running the following command in the terminal:
    $ mdimport -A
    `

发表评论

您的电子邮箱地址不会被公开。