红蓝匹敌的项目管理工具——Ghostwriter的幕后花絮 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

红蓝匹敌的项目管理工具——Ghostwriter的幕后花絮

申博_安全预警 申博 49次浏览 已收录 0个评论

申博开户

申博开户第一时间掌握最新娱乐动态和网民用户感兴趣的娱乐类型,坚持与时俱进,不断改善自身的条件,引进最全面、最新颖的娱乐方式,供给网民用户群体。让用户随时随地游戏,尽情尽兴娱乐。作为人气超高的网上娱乐平台,申博并没有因此停下他探索的脚步,追求及时更新,随时急速更新,娱乐方式一网打尽,在一个平台拥有多种快乐,将快乐尽情掌握。

,

在本系列文章的第一部份中我向人人引见了 Ghostwriter。而且我细致的引见了 Ghostwriter 的制造历程、手艺栈以及开辟历程当中的思维历程。 假如你还没有读过第一部份的文章,请点击这里检察。

手艺栈概述

Ghostwriter 是一个运用 Python 编写的 web 应用程序,运用了 Django web 框架。 它是一个 Python 3.7 HTML JavaScript CSSJinja Django 代码的鸠合,被划分为多个 Django 应用程序。 这个辨别有助于坚持代码的组织性,而且在定制或开辟历程当中易于浏览。

这个应用程序运用了一个 PostgreSQL 后端,Django 原生就支撑这个后端。 但是,假如用户愿望切换到差别范例的后端,可以在 Django settings.py 里更新为运用 SQLite Oracle MySQL,而不须要任何分外的库。 Django 也使得修正 Ghostwriter 数据库模子变得很轻易。 迁徙操纵平常很顺遂,也不会涌现任何毛病,特别是假如你在生产环境中运用 Ghostwriter 前定制了模子。

末了,Ghostwriter 运用 Django Q Redis 举行自动行列治理处置惩罚(AQMP) Ghostwriter 自动化了很多事变,比方更新域分类数据和 DNS 纪录。 这些使命交给 Redis 举行背景处置惩罚。

装配相对简朴一些。 Ghostwriter 可以在当地运转,也可以在低功耗服务器上运转。运转的主机只须要 Redis Python 3.7 Ghostwriter 运用的非范例 Python 库和 Django 库相对较少。 Ghostwriter Docker 一同打包,因而一切的东西都可以运用 Docker Compose 和一个敕令举行布置。 细致信息可以在 GitHub wiki 上找到。

关于为何挑选这些特定手艺的一些细节将在这篇文章中议论:

数据库模子

只管 Ghostwriter 由多个应用程序构成,但它们都互相通讯并同享一个数据库。

如下图所示,数据库模子都相互链接以便将一切内容联络在一同。 Wiki 中的文档为每一个应用程序供应了更多的细节和零丁的 UML 图。

红蓝匹敌的项目管理工具——Ghostwriter的幕后花絮

每种范例的对象都有一个表,我们已为这些模子中的很多模子包含了 Django “fixture”(预定义的数据集) 这些装配被加载到 Ghostwriter 数据库中,用于预添补必要的模子,以便在几分钟内启动并运转新的布置。 Ghostwriter 支撑其他模子的 CSV 文件导入,比方域名和服务器。

Ghostwriter的制造历程

在评价过去的履历、当前的事变流程和当前可用的处理方案时,我们很快发现了致使我们气愤或对效力和生产力发作负面影响的要素。 这里的关键是在这个评价上投入时候。 我们在 SpecterOps 的办公室里呆了一个礼拜,向心田提问,议论我们喜好什么,不喜好什么,想要什么新东西。

当一个团队完成一个新的历程时,(险些)老是会有一些次优的变通要领、技能或许特别的决议设想,并伴跟着今后修复它们的优越企图。 这些优越的企图很少转化为改正行动。 假如这些题目得不到处理,它们就有可以成为公认的范例,并恶化。

你可以把这看做是最小阻力准绳的效果 卡尔 · 纽波特在他的书《深度事变》中形貌了这一准绳:

在贸易环境中,假如没有关于种种行动对底线的影响的明白反应,我们会倾向于当下最轻易的行动。

如前所述,项目治理和流程事变流程并不吸引人,所以当一个团队有时候优化某些东西时,他们不会倾向于报告是可以明白的。 这件事的阴暗面是全部团队继承被十几件小事激愤,都是本身形成的。 终究,这些不满被认为是必要的减速带,使每一个人陷入困境,直到有人采用改正行动或终究致使宇宙的爆炸:不管哪个先到来。

因而,SpecterOps 团队制订了一个野心勃勃的设想: 构建我们的妄想东西。 这是一个高尚的目的,但也是必要的目的。 经由过程射击那颗悠远的恒星,我们愿望最少可以击中月球。 我们称这个项目为 SpecterOps 自动报告平台,简称 SOAR,并致力于完成这个项目。

跟着平安编排和相应作为一个术语愈来愈盛行,幸亏我们不太喜好这个名字; 但是,SOAR 本来是这个平台的一个很好的名字。 这就是生活。

我们改名为 Ghostwriter

CVE-2019-2114漏洞

背景 Android安卓是Google为手机和移动设备开发的开源操作系统。据统计,全球有超过20亿设备运行安卓操作系统。大多数的安卓设备都受限于必须从Google play应用商店下载应用程序。在安卓 8之前,通过在系统设置中进行设置既可授予APP从其他源安装应用的能力。在安卓8中,这一机制被修改了,用户必须授予每个想要执行安装的应用程序对应的权限。如下所示: 一些安卓设备支持近场通信

我们为这个项目制订了几个重要的准绳:

灵活性

自定义治理东西的重要失利之一就是缺少灵活性。 竖立该东西是为了处理我们关心的最直接的题目,很少斟酌假如该历程在将来发作变化或须要增强将会发作什么。 我们晓得 Ghostwriter 必需可以很轻易地改变以顺应报告设想和请求的改变。

这关于将 Ghostwriter 作为开源东西宣布也很重要。 关于其别人来讲,当他们不须要花费数小时重写代码来改变一个简朴的报表设想时,他们更轻易接受 Ghostwriter 作为他们团队的一员。

为了支撑这个准绳,我们很早就包含了 JSON 报告,以使报告的修正变得简朴,许可将 Ghostwriter 项目引入到其他报告引擎中(假如须要的话) ,并范例一切差别范例报告( docx xlsx pptx)的报告生成。 我们运用 Office 文档作为报表款式的模板。 如许就不须要编辑代码来调解大部份的字体、色彩或许题目款式。 一切这一切的大部份都是经由过程一个熟习的、无处不在的东西来治理的,那就是微软 Office

可扩大性

可扩大性与灵活性一样重要。 我们晓得我们须要一个可以延伸到将来的处理方案。 Ghostwriter 的重要目的之一就是把一切的东西都放在一个处所。 假如 Ghostwriter 不能很轻易地扩大,那末这可以意味着第二个应用程序或平台可以用来跟踪将来的新需求。 这听起来似乎是一件小事,但是,跟着时候的推移,它可以会致使更多的不快活。

我们不愿望 Ghostwriter 的构造云云枯燥,以至于它只能供应有限的功用。 依据我们的履历,即使是巨大的定制应用程序也会过期,有时会成为运用的累赘。 节省时候的累赘仍然是一件不快活的事变。

可以增加新的应用程序,可以集成到现有的 Ghostwriter 应用程序是一个福音。 我们已在致力于向 Ghostwriter 增加新的应用程序,比方为蓝队供应一个应用程序,该应用程序应用报告引擎生成警报和检测战略(ADS)

生成 ADS 报告的应用程序不仅对我们的团队有效,与现有应用程序的集成意味着蓝队应用程序也晓得一切的红队应用程序以及所附带的客户信息、项目、报告和其他团队成员纪录的运动,反之亦然。 在一个方向上扩大 Ghostwriter 不仅增加了新的功用,而且雄厚了全部平台。

毕竟,Ghostwriter 是一个友爱的紫色幽魂,只是想协助人人。

弹性

我们初期的忧郁之一是用 $Some_Library 竖立 Ghostwriter,然后 $Some_Library在某种程度上有一些改变,这对 Ghostwriter 来讲是一个负面影响。 因而,我们致力于弹性的观点,用于一切事物的第一个版本。 当前版本的 Ghostwriter 中的一切内容都是运用中心 Python Django 库构建的。 也有一些破例,但除了 Django Q (支撑优越)以外,大多数第三方库都支撑可以在不损坏 Ghostwriter 的情况下举行变动的特征。 即使是那些运用优越且受支撑的库,比方 request 除此以外,唯一的外部依靠是 web 框架,jQuery Bootstrap,它们都很盛行而且得到了很好的支撑。

这一切都意味着 Ghostwriter 更轻易装配和运用,而且不会由于外部库变动或装配了毛病的版本而涌现毛病。 在某些情况下,这使得开辟事变轻微难题一些。 比方,我们挑选运用 jQuery 而不是第三方 Django 库。 这增加了一个学习曲线和一些最初的难题,但终究的产物会有更好的效果。

或许最值得注意的衡量是缺少某些附加功用,比方所见即所得文本编辑器。 所见即所得编辑器固然不错,但我们有意挑选防止它们,以确保有一个壮大的基础,以防我们挑选的任何一个编辑器插件有一天消逝。 最少我们可以切除非功用的所见即所得插件,而且清晰基础的文本框也可以很好的事变。 (与此同时,所见即所得的编辑器也有了。)

自动化

我们愿望 Ghostwriter 可以自动化某些单调乏味的历程,或许那些我们晓得人们会遗忘或疏忽的历程。 这一准绳不言自明,但我们必需在生长历程的初期就把它作为优先事项。 每当我们完成一个用户可以实行的新操纵时,我们就不得不问,这个历程的任何部份是不是应当依据用户的输入自动化? ”

一旦我们运用触发器和设想使命完成了功用自动化(这要谢谢 Django Q  Redis) ,我们也可认为自动化提出一些风趣的新主意,比方 Slack 关照和域名的 DNS 搜检。

吃狗粮

末了,我们晓得最好也是唯一能确保我们走上准确途径的要领就是尽早运用 Ghostwriter 我们的目的一直是运用 Ghostwriter,但我们在两个月内就最先运用它,而不是守候“ beta”版本或某个“ v1.0”版本的宣布。 当时,它只是一个 Python 库和一个从敕令行运转的剧本,用于生成报告。 这是一些初期头脑的观点考证。 厥后生长成为一个基础的 web 前端,运用 Python Flask web 框架竖立。 研讨和测试终究致使了我们所挑选的框架向 Django 改变。

在每一个阶段,我们尝试差别的界面设想,测试新的主意和观点,只是平常的试验。 有相当多的哑弹,但这个历程倒是云云重要。 援用《 Make 》杂志首创主编马克弗劳恩费尔德(Mark Frauenfelder)在亚当萨维奇(Adam Savage)的著作《每种东西都是一把锤子》(Every Tool is a Hammer)中的话:

You’ve got to do at least six iterations, minimum, of any project before it starts getting good enough to share it with other people.

在任何项目最先变得足够好以便与其别人分享之前,你必需最少举行六次迭代。

不久前我们经过了 Ghostwriter 的第六次迭代。 这张动图显现了2018919 Ghostwriter 或许 SOAR 的模样。我们愿望你会赞同我们,守候和无数次的迭代是值得。

本文翻译自:https://posts.specterops.io/introducing-ghostwriter-part-1-61e7bd014aff


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明红蓝匹敌的项目管理工具——Ghostwriter的幕后花絮
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址