Abstract:
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for memory address pinning. One of the methods includes loading a software module into a sandbox environment; receiving, a message from the software module to a recipient, the message includes a memory address; determining whether to pin the memory address; and passing the message to an address pinning unit which replaces at least a portion of the memory address with at least a portion of a specified replacement address, when it is determined to pin the memory address, and passes the modified message to be delivered to the recipient.
Abstract:
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
Abstract:
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
Abstract:
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
Abstract:
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for software sandboxing. One of the methods includes receiving a software module that includes verifiably safe computer code and a branch destination table indicating addresses of all instructions that may be targets of indirect control flow transfers; validating the computer code to determine whether it can run safely by using a statically verifiable fault isolation scheme, where validating the computer code comprises validating the addresses of the branch destination table instructions; and running the computer code, in a sandbox environment, if it has been determined to run safely.
Abstract:
Methods and apparatus for dynamically adding and deleting new code to previously validated application executing in a secured runtime. New code is written to a portion of secured memory not executable by application. New code is validated to ensure it cannot directly call operating system, address memory outside of secured memory, or modify secured memory state. Indirect branch instructions may only target addresses aligned on fixed size boundaries within the secured memory. Validated code is copied to portion of secured memory executable by application in two stage process that ensures partially copied segments cannot be executed. Validated new code can be deleted once all threads reach safe execution point, provided code was previously inserted as unit or contains no internal targets that can be called by code not also being deleted.
Abstract:
Methods and apparatus are disclosed for receiving and transmitting signals at a balloon. Received signals can be received at the balloon, which can include a payload and an envelope. The envelope can include at least a first antenna section and a second antenna section. Both the first and second antenna sections are configured at least to receive the received signals and convey at least the received signals to the payload. The first antenna section can include a first metallization pattern to receive a first type of signal. The second antenna section can include a second metallization pattern to receive a second type of signal, with the first metallization pattern being different from the second metallization pattern.
Abstract:
Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
Abstract:
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for memory address pinning. One of the methods includes loading a software module into a sandbox environment; receiving, a message from the software module to a recipient, the message includes a memory address; determining whether to pin the memory address; and passing the message to an address pinning unit which replaces at least a portion of the memory address with at least a portion of a specified replacement address, when it is determined to pin the memory address, and passes the modified message to be delivered to the recipient.
Abstract:
Methods and apparatus are disclosed for receiving and transmitting signals at a balloon. Received signals can be received at the balloon, which can include a payload and an envelope. The envelope can include at least a first antenna section and a second antenna section. Both the first and second antenna sections are configured at least to receive the received signals and convey at least the received signals to the payload. The first antenna section can include a first metallization pattern to receive a first type of signal. The second antenna section can include a second metallization pattern to receive a second type of signal, with the first metallization pattern being different from the second metallization pattern.