Articles of 安全

java.lang.SecurityException:Permission Denial:starting Intent {act = android.intent.action.MAIN cat =

有一个错误启动activity ,不幸的是,我认为它没有严格地与项目连接,因为应用程序在genymotion模拟器上启动,但不在物理设备上。 当我运行adb devices与真正的连接我得到: List of devices attached 0009215b1eef4f device AndroidManifest.xml没有任何权限需要设置和设备有足够的api version 。 问候

在Linux中将物理地址转换为虚拟并读取其内容

我有Linux和我有一个物理地址:(即0x60000000)。 我想从用户空间的Linux程序读取这个地址。 这个地址可能在内核空间中。

数据包套接字只在混杂模式下接收本地stream量

我有socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))创build一个套接字,我已经设置为混杂模式使用: struct ifreq ifr; strncpy((char*)ifr.ifr_name, interface, IF_NAMESIZE); if(ioctl(sock, SIOCGIFINDEX, &ifr)<0) fail(2); struct packet_mreq mr; memset(&mr, 0, sizeof(mr)); mr.mr_ifindex = ifr.ifr_ifindex; mr.mr_type = PACKET_MR_PROMISC; if(setsockopt(sock, SOL_PACKET, PACKET_ADD_MEMBERSHIP, &mr, sizeof(mr)) < 0) fail(2); 问题是,当我从套接字执行read() ,它只返回来自或到达我的计算机的数据。 我怎样才能读取和处理networking上的所有数据包? Wireshark显示所有的数据包都很好,所以我知道这不是我的电脑或网卡。 ifconfig在运行时报告它是PROMISC 。

如何在python setup.py中chmod文件?

我用setup.py创build了一个python软件包安装,并且我希望它能复制文件夹中的数据文件(为此创build的)〜/ .did。 问题是我必须使用sudo权限来调用setup.py,因为它在/ usr / local /中写入…所以当我的数据文件复制到〜/ .did中时,只有root用户才能写入文件。 然后我决定在setup()函数之后添加对os.chmod()的调用,但我想知道是否有人有一个更干净的方法来做到这一点。 这是我的setup.py文件: #!/usr/bin/env python from distutils.core import setup import os home=os.path.expanduser('~') setup(name='did', version='1.0', description='Daily Image Downloader', author='Luc Mazon', author_email='my@mail.com', url='', license='GNU GPL v3', scripts=['did'], packages=['didlib'], data_files=[ ('/usr/share/man/man1', ['doc/did.1.gz']), (home+'/.did', ['did.xml']) ] ) os.chmod(home+'/.did/did.xml', 0666) 由于did.xml不是一个python文件,我还用下面一行创build了一个MANIFEST.in文件: include did.xml 我的软件包的全局结构如下: did-1.0 | didlib | | __init__.py | | variouspyfiles.py […]

Android如何强制执行权限?

我已阅读了几篇关于“Android安全模型”( 1,2,3和更多)的文章。 我理解权限的理论MAC模型,以及与应用程序开发有关的大部分。 但是关于广泛的底层细节,似乎很less有文档: 如何在系统级实际执行权限。 也就是说,使用JNI,什么会阻止我直接访问硬件,如GPS? (我意识到可能有一个Linux文档的退步,与Android无关,回答这个问题,或者更为一般和经典的操作系统解决scheme来解决这个问题)。 在执行堆栈上实际发生了什么,以及在使用Android ICC时调用了哪些函数。 任何人都可以引用我的解释和/或从Android的相关代码段? //编辑:为了澄清事情(因为看起来评论者感到困惑),标题中的问题在两个不同的(完全不同的)问题中被分割。 这里的第一个答案确实回答了关于ARM处理器中存在的低级机制的第一个问题(谢谢)。 关于国际商会程序要求的第二个问题仍然没有答案…

C / asm程序在由非特权用户运行时对Linux有什么危害?

我一直在想一个场景,让用户(可以是任何人,可能是坏的意图)提交在Linux PC上运行的代码(我们称之为基准节点)。 目标是为单线程例程创build一种自动化的基准testing环境。 假设一个网站向代理发布一些代码。 这个代理把这个代码交给基准节点,基准节点只有一个到代理的以太网连接,而不是互联网本身。 如果让一个用户在C / ASM代码上运行基准节点,会面临什么样的安全挑战? 做出以下假设: 该程序作为非特权用户运行 代理将有机会杀死基准节点上的进程(例如以无限循环为例) 代理能够重新启动基准节点(如果它回复…) 那么,这个用户空间程序实际上可能会使操作系统崩溃,还是使代理不可用? 通过汇编,程序员可以基本上做他想做的任何事情(例如操纵堆栈指针),我想知道Linux在这方面的限制/强大。 我也知道进程可能需要与其他进程(shm)共享内存区域,这也可能在这里起作用。 任何有关这个问题的文献或文章都非常受欢迎。 沙盒解决scheme也可能是有趣的,但重要的是,CPU必须执行它在基准testing期间的100%的能力(至less在基准testing的核心上)。

在生产环境中保护密码

我们有一个运行在JBoss和Linux上的Java Web应用程序。 生产环境数据库连接参数来自只存在于生产环境应用程序服务器上的configuration文件。 该configuration文件只能由运行应用程序的用户ID读取(我们称之为用户appuser),唯一可以login到生产环境服务器的人员以及sudo到appuser是我们运营团队的成员。 生产环境本身被所有其他环境所阻挡。 我们想让这个更安全。 具体而言,我们希望防止操作团队读取configuration文件中当前的数据库连接密码和其他密钥。 另一个需要记住的因素是操作团队负责构build和部署应用程序。 我们有什么select? 该解决scheme需要支持手动重启应用程序,以及在操作系统重启时自动启动应用程序。 更新 我现在正在调查的解决scheme(向Adamski提出他的build议,大致转化为步骤1): 编写一个setuid包装器可执行文件给启动/停止应用程序的用户,并拥有JBoss目录树中的configuration文件和所有内容。 build造后使用jarsigner来签署WAR。 战争的build设将通过发展来完成。 setuid包装将validation签名,validationWAR没有被篡改。 将部署过程更改为仅部署已签署的WAR。 setuid包装器也可以将WAR移动到JBoss deploy目录中。

保护UDP – OpenSSL或GnuTls或…?

我需要保护我的UDPstream量。 据我所知,DTLS协议是最好的方法。 还有一个IPsec – 但它看起来不适合我,因为它不易使用,并有可能的硬件问题。 我发现有一些库已经实现了DTLS。 所以现在我试图select – OpenSSL或GnuTls? 你能告诉我什么是更好的使用? 有什么缺点或优点? 或者可能有另一个DTLS支持的库实现? 谢谢。

我如何让用户使用root权限运行脚本?

考虑到SUID shell脚本的危险 ,是否有一种更安全的方法来在Linux中拥有root权限的无脚本访问脚本(bash,PHP)? (Ubuntu 8.10)

longjmp如何工作?

我需要了解如何longjmp函数工作; 我知道它做了什么,但我需要知道它是如何做到的。 我试图disas在gdb中的代码,但我不明白一些步骤。 代码是: 0xb7ead420 <siglongjmp+0>: push %ebp 0xb7ead421 <siglongjmp+1>: mov %esp,%ebp 0xb7ead423 <siglongjmp+3>: sub $0x18,%esp 0xb7ead426 <siglongjmp+6>: mov %ebx,-0xc(%ebp) 0xb7ead429 <siglongjmp+9>: call 0xb7e9828f <_Unwind_Find_FDE@plt+119> 0xb7ead42e <siglongjmp+14>: add $0x12bbc6,%ebx 0xb7ead434 <siglongjmp+20>: mov %esi,-0x8(%ebp) 0xb7ead437 <siglongjmp+23>: mov 0xc(%ebp),%esi 0xb7ead43a <siglongjmp+26>: mov %edi,-0x4(%ebp) 0xb7ead43d <siglongjmp+29>: mov 0x8(%ebp),%edi 0xb7ead440 <siglongjmp+32>: mov %esi,0x4(%esp) 0xb7ead444 <siglongjmp+36>: mov %edi,(%esp) 0xb7ead447 <siglongjmp+39>: […]