需要在飘扬的二进制文件上进行安全评估的协助评估

发布于 2025-01-28 16:49:37 字数 552 浏览 3 评论 0原文

我正在使用颤动开发一个Android应用程序,但是在脆弱性评估期间,客户提出了对基于ARM的二进制文件的安全性问题。

  1. nx-共享对象没有NX位设置。 NX位提供防止 通过将记忆页标记为非 - 可执行。使用选项-NoexeCstack或-Z noexecstack将堆栈标记为非 - 可执行。

  2. 堆栈金丝雀 - 此共享对象没有堆栈金丝雀值添加到 堆栈。堆栈金丝雀用于检测和防止利用覆盖 返回地址。使用该选项 - fstack- protector-全部启用堆栈金丝雀。

  3. 无relro-此共享对象未启用RELRO。整个got(.got and .got.plt俩)都是可写的。没有此编译器标志,缓冲区在全局上溢出 变量可以覆盖有条目。使用选项-z,relro,-z,现在启用完整 relro,只有-z,启用部分relro。

文件:lib/armeabi-v7a/libapp.so(1,2,3),lib/mips/libmodpdfium.so(3),lib/armeabi-v7a/libtool-checker.so(2

I'm developing an android app using flutter but during vulnerability assessment client have raised security concerns on flutter compiled arm-based binaries.

  1. NX - The shared object does not have an NX bit set. NX bit offers protection against
    exploitation of memory-corruption vulnerabilities by marking the memory page as non-
    executable. Use option --noexecstack or -z noexecstack to mark the stack as non-
    executable.

  2. STACK CANARY - This shared object does not have a stack canary value added to
    the stack. Stack canaries are used to detect and prevent exploits from overwriting
    return address. Use the option - fstack- protector- all to enable stack canaries.

  3. No RELRO - This shared object does not have RELRO enabled. The entire GOT (.got and .got.plt both) are writable. Without this compiler flag, buffer overflows on a global
    variable can overwrite GOT entries. Use the option -z,relro,- z,now to enable full
    RELRO and only -z,relro to enable partial RELRO.

Files: lib/armeabi-v7a/libapp.so (1,2,3), lib/mips/libmodpdfium.so (3), lib/armeabi-v7a/libtool-checker.so (2)

Thanks in advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软糯酥胸 2025-02-04 16:49:37

在安全误报上查看这篇文章 - https://docs.flutter.dev/reference/ Security-false-potitives

  • nx位未设置 - 来自MOBSF的消息具有误导性;它正在寻找堆栈是否标记为不可执行,而不是共享对象。

  • 堆栈金丝雀 -Dart不会生成堆栈金丝雀,因为与C ++不同,DART没有堆栈分配的阵列(C/C ++中堆栈粉碎的主要来源)。

  • 使用relro - DART完全不使用普通过程链接表(PLT)或全局偏移表(GOT)机制,因此lotagocation norly read-Read-Read-Read-Read-Real(Relro)技术不会对于飞镖来说真的很有意义。

Check this post on Security False Positives - https://docs.flutter.dev/reference/security-false-positives

  • NX bit not set- The message from MobSF is misleading; it's looking for whether the stack is marked as non-executable, not the shared object.

  • Stack Canary- Dart doesn't generate stack canaries because, unlike C++, Dart doesn't have stack-allocated arrays (the primary source of stack smashing in C/C++).

  • use RELRO- Dart doesn't use the normal Procedure Linkage Table (PLT) or Global Offsets Table (GOT) mechanisms at all, so the Relocation Read-Only (RELRO) technique doesn't really make much sense for Dart.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文