问题标签 [hardening]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
188 浏览

android - 为什么应用程序崩溃后我的进程仍然存在?

我有一个应用程序,我故意抛出一个RuntimeException. 结果是应用程序崩溃,所有可见的活动痕迹都消失了,并且向用户显示了一个弹出对话框:

应用已停止
[X] 关闭应用

到目前为止一切顺利,这一切都在意料之中。

但是,我能够通过adb shell ps | grep <packageName>在崩溃之前和之后调用来观察我的进程实际上在这次崩溃中幸存下来。(只有在用户点击“关闭应用程序”时,该进程才会被终止。)

  • 这个过程保持活力的含义是什么?这个过程处于什么状态?它需要哪些资源,哪些信息仍保留在内存中?

PS。我知道在进程不存活的情况下强制应用终止的不同可能性(例如System.exit()or android.os.Process.killProcess()),但这不是问题 - 我真的对为什么进程在应用崩溃中幸存更感兴趣。


我的问题的背景应用程序强化和根/篡改/调试器检测。在其中一些情况下,从安全/强化的角度来看(即,使潜在攻击者更难进行逆向工程),可能需要尽可能快且干净地杀死应用程序。我完全知道 Android 并非旨在为应用程序提供这种控制,并且您通常不应该尝试终止应用程序。

0 投票
0 回答
207 浏览

login - 阻止管理员帐户通过 WooCommerce 登录页面登录

我正在尝试使用 WooCommerce 加强对 WordPress 网站的管理访问权限。

到目前为止,我设法做到了以下几点:

  • 将来自 .htaccess 中特定 IP 的管理员访问权限列入白名单:

    /li>
  • 允许 WooCommerce 客户通过 WooCommerce 登录页面(example.com/my-account)登录

但是我有两个问题:

  1. 管理员仍然可以从 WooCommerce 登录页面example.com/my-account登录,我想避免这种情况(因为它使上述 .htacess 规则无用)
  2. 当客户尝试注销时,他们会得到403 Forbidden(我猜这是由于上述 .htaccess 规则)

所以我想知道有没有人设法完成我想要达到的目标?

0 投票
1 回答
2183 浏览

virtualbox - 什么是 VirtualBox 强化?

我们使用 Oracle VirtualBox OSE 作为我们自定义虚拟化基础架构的一部分,并在我们的 CI 服务器上对其进行编译。您可以添加到自定义配置文件 LocalConfig.kmk 中的众多编译参数之一是VBOX_WITH_HARDENING = 0,这显然意味着在没有硬化的情况下编译 VirtualBox。此外,如果您自己编译它,您将无法打开它。

我无法在官方构建说明中找到“低级”上的“强化”,据我所知,这是一个安全补丁,增加了客户操作系统对漏洞利用的保护。但是,它仍然留下了很多问题。它在物理上是什么,一个驱动程序,一个补丁,一个应用程序?为什么开源产品 VirtualBox OSE 中不包含强化源?我的意思是,如何使用源自 Sun Microsystems 的开源许可证?主要问题是,是否可以使用 Hardening 编译 VirtualBox OSE?

0 投票
3 回答
4885 浏览

java - Java 和 Mojave 的强化运行时

我目前分发一个 Java 应用程序,在 macOS 上使用打包和签名。pkgbuild

最近,Apple 警告开发者:

“在即将发布的 macOS 中,Gatekeeper 将要求开发者 ID 签名的软件经过 Apple公证。”

在阅读公证文档后,苹果警告开发人员

“您必须为您的应用启用强化运行时才能获得 Apple 的公证。”

其中详细介绍了如何在 Xcode 中切换这些设置。但是那些不是用 Xcode 开发的应用程序呢? Xamarin/Mono 有一些关于他们如何解决这个问题的来回,但到目前为止的提交似乎集中在 Mojave 检测和 C/C++ 上。Java 应用程序或不分发任何 C/C++/Objective-C 编译代码的应用程序呢?一个项目如何得到“公证”,这样它就不会被未来的 macOS 更新阻止?

可能相关:如何在 Xcode 上为第 3 方 CLI 进行代码设计和启用强化运行时?

0 投票
2 回答
657 浏览

android - 在 apktool 尝试反编译/取消归档我的 apk 时引发异常

我试图通过逆向工程来强化我的 APK。我知道阻止反编译 APK 是不可能的,但我看到一些 APK 在反编译过程中使用了一个技巧来抛出异常apktool(不仅仅是 APK 工具,所有像QARK这样的反编译器都无法返回 classes.dex APK),所以我决定这样做在逆向工程中花费更长的时间

在这里您可以看到强化应用程序的一些结果:winrar:winrarwinrar2

APK工具:

请为我解释一下,这怎么可能?(我需要实施细节)

0 投票
1 回答
1350 浏览

wordpress - Wordpress 默认目录更改

我正在尝试更改 WP 默认目录的默认路径,例如wp-contentwp-include以避免wpscan。我尝试过使用插件是否可以使用手动技术执行相同的操作。我正在使用 apache 作为 Web 服务器。

一个例子,我试过:

谢谢

0 投票
1 回答
248 浏览

php - 子目录中 Wordpress 的 .htaccess 规则

我使用这样的 .htaccess 规则来强化 wordpress 并重定向到 https:

WordPress 安装在主目录中。现在我们计划在子文件夹 (public_html/de) 中安装第二个 wordpres 博客。新安装将有自己的 .htaccess 文件。对于这个新的 wordpress 安装,我们是否需要相同的强化规则,或者在主文件夹中有强化规则就足够了?

0 投票
1 回答
96 浏览

fork - FORK 不适用于 root 用户以外的用户

我有一个 systemd 服务文件,我在其中设置不同于 root 的用户和组。应用程序使用此服务文件运行。应用程序fork()在其代码中使用来启动一个新进程。

问题是 fork 命令不起作用,即它无法创建子 PID。以 root 用户身份运行服务时不会发生同样的情况。请帮忙提出一些建议。有什么功能,我想在服务文件中添加吗?

已添加到我的服务文件中。

0 投票
0 回答
181 浏览

php - CakePHP 3.7 - 服务器中的 setUser 和会话问题

问题是 usersController 中的函数 setUser 返回 null,并且没有登录用户。

对 DB 的查询正在获取用户,我可以毫无问题地看到这些字段。/tmp/sessions 中的会话文件创建正常,如果我们将配置更改为 php 会话,而不是蛋糕,也会创建它。

似乎会话已创建,但 apache 或 cake 无法读取。

相同的代码,在不同的操作系统和 php 版本中工作正常。

可以与 www-data/apache 用户的某些特定权限相关联吗?

我们正在运行 Apache2、php 7.3 并连接到 SqlServer。

代码:

谢谢 !

0 投票
4 回答
11898 浏览

shell - 如何防止对我的 docker 容器的 root 访问

我正在努力强化我们的 docker 镜像,我对此已经有一点了解。话虽如此,我当前的步骤是阻止用户以 root 身份运行容器。对我来说,这就是说“当用户运行'docker exec -it my-container bash'时,他将是一个非特权用户”(如果我错了,请纠正我)。

当我通过 docker-compose 启动我的容器时,运行的启动脚本需要以 root 身份运行,因为它处理导入证书和挂载文件(在外部创建并通过卷挂载查看)。完成后,我希望用户成为“appuser”以供将来访问。这个问题似乎与我正在寻找的内容非常匹配,但我使用的是 docker-compose,而不是 docker run:如何禁用 docker 容器的 root 访问权限?

这似乎是相关的,因为启动命令与我们说的 tomcat 不同。我们正在运行一个 Spring Boot 应用程序,我们使用一个简单的“java -jar jarFile”启动它,并且该图像是使用 maven 的 dockerfile-maven-plugin 构建的。话虽如此,我应该在运行之前将用户更改为非特权用户,还是之后?

我相信更改 Dockerfile 中的用户而不是启动脚本会这样做......但是它不会以 root 身份运行启动脚本,因此会在需要 root 的调用上崩溃。我也搞砸了使用 ENTRYPOINT,但可能在那里做错了。同样,在 yml 文件中使用“user:”似乎会使 start.sh 脚本以该用户而不是 root 身份运行,所以这不起作用。

Dockerfile:

start.sh 脚本:

app.yml 文件:

docker-compose shell 脚本:

我期望的是,任何试图在内部访问容器的人都将以 appuser 而不是 root 身份进行访问。目标是防止有人弄乱他们不应该做的事情(即码头工人本身)。

正在发生的事情是脚本将在应用程序启动后更改用户(通过 echo 命令证明),但它似乎没有得到维护。如果我执行它,我仍然是根。