26 days old

Senior Software Analysis Engineer

Cupertino, CA 95014
  • Job Code
    200193324
Summary

Summary

Posted: Sep 25, 2020

Weekly Hours: 40

Role Number:200193324

Home Office: Yes

The security engineering team at Apple creates program analysis tools that protect over 1 bi...Summary

Summary

Posted: Sep 25, 2020

Weekly Hours: 40

Role Number:200193324

Home Office: Yes

The security engineering team at Apple creates program analysis tools that protect over 1 billion users by sequencing the DNA of millions of iOS & macOS binaries. We're seeking engineers to help improve and expand our custom binary analysis IR, program analyzers, decompilers, emulators, and compiler-based security mitigations.

Key Qualifications

  • Excellent programming skills in C and Python. Swift or C++ experience is a plus.
  • Strong experience with Apple's operating systems (macOS & iOS, Objective-C, frameworks, dyld, etc.) or a demonstrated skill in quickly learning OS internals
  • Expert understanding of x86 and ARM assembly & architecture
  • Experience with program analysis, including static analysis algorithms and control & data flow analysis. Experience building adjacent tools, like decompilers and emulators, is a plus.
  • Basic understanding of software security concepts like memory safety and program correctness Effective communication of complex technical concepts
  • Passionate about engineering perfection, performance, and quality
  • Enthusiasm for new technologies and growth

Description

Our team cares deeply about protecting Apple's customers from apps that might compromise their security and privacy. We built systems that scan every binary that developers upload to the App Store and notary service and that help other teams at Apple deliver safer software.

Here are examples of the kinds of projects you might be working on with us.

Disassemblers: improve binary lifter to translate native to intermediate representation. Create thorough test harness for automatically verifying correctness of translation

Decompilers: recover higher-level control & data flow structure. Implement static analysis passes to optimize, detect loops, rename variables, and simplify expressions to make them easier to for analysts to understand. Type analysis of variables and memory accesses.

Compilers: implement new memory protection techniques

Emulators: design and implement emulator for executing instructions in a safe environment, including memory model and interactions with the environment

Reverse-engineer problematic binaries to diagnose problems with our tools or understand new malware or exploits.

Education & Experience

BS in Computer Science or equivalent experience/skills

Additional Requirements

Posted: 2020-09-29 Expires: 2020-10-29

Before you go...

Our free job seeker tools include alerts for new jobs, saving your favorites, optimized job matching, and more! Just enter your email below.

Share this job:

Senior Software Analysis Engineer

Apple, Inc.
Cupertino, CA 95014

Join us to start saving your Favorite Jobs!

Sign In Create Account
Powered ByCareerCast