Senior Software Analysis Engineer

Apple Inc. Cupertino , CA 95014

Posted 2 months ago

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

icon no score

See how you match
to the job

Find your dream job anywhere
with the LiveCareer app.
Mobile App Icon
Download the
LiveCareer app and find
your dream job anywhere
App Store Icon Google Play Icon
lc_ad

Boost your job search productivity with our
free Chrome Extension!

lc_apply_tool GET EXTENSION

Similar Jobs

Want to see jobs matched to your resume? Upload One Now! Remove
Apple Media Products Engineering Senior Software Engineer

Apple Inc.

Posted 3 weeks ago

VIEW JOBS 11/1/2020 12:00:00 AM 2021-01-30T00:00 The Apple Media Products Engineering team is one of the most exciting examples of Apple's long-held passion for combining art and technology. These are the people who power the App Store, Apple TV, Apple Music, Apple Podcasts, and Apple Books. And they do it on a massive scale, meeting Apple's high expectations with high performance to deliver a huge variety of entertainment in over 35 languages to more than 150 countries. These engineers build secure, end-to-end solutions. They develop the custom software used to process all the creative work, the tools that providers use to deliver that media, all the server-side systems, and the APIs for many Apple services. Thanks to Apple's unique integration of hardware, software, and services, engineers here partner to get behind a single unified vision. That vision always includes a deep commitment to strengthening Apple's privacy policy, one of Apple's core values. Although services are a bigger part of Apple's business than ever before, these teams remain small, nimble, and multi-functional, offering greater exposure to the array of opportunities here. Key Qualifications * At least 5 years experience in a professional programming position with Java and similar languages. * Strong understanding of building micro-services using REST-style APIs. * Experience with modern queuing and messaging systems like RabbitMQ, Kafka, Phaser, SNS, SQS, etc. * Confidence with both SQL databases like Oracle and NoSQL databases like Cassandra. * Experience deploying software on elastic platforms such as Kubernetes, EC2, etc. * Enjoys fixing/improving things and finding solutions to difficult problems. * Strong belief in automation and tooling as a critical part of the software lifecycle. * Strong written and oral communication skills. Description As an Engineer on the Platform Services team at AMP, you'll support the content processing pipelines and asset management for all of Apple's digital content including apps, music, movies, and books on the App Store and iTunes Store. We run the life cycle of Apple's digital assets and are responsible for maintaining secure access to them across both new and legacy applications. Engineers on this team develop the custom software used to process all the creative work, the tools that providers use to deliver that media, all the server-side systems, and the APIs for many Apple services. This role involved building Workflow and Messaging platforms that enable the business to rapidly adapt to the changing needs of our customers. These platforms are available to be used by all AMP teams that deliver that media, all the server-side systems, and the APIs for many Apple services. Our team is geographically diverse. We're looking for someone whose "people skills" complement their coding skills. Someone who likes improving things as much as building things, and someone who is passionate about discovering new ways to accelerate the rate at which we can improve our products! As a member of our team, you will collaborate with multiple engineering teams, business operations, production support, site reliability engineering, quality assurance, and other infrastructure teams. You will develop the next generation of asset management systems and work with our partner teams to migrate legacy systems onto your new platforms. We will be seamlessly migrating live data and content while maintaining the service quality Apple customers expect. Education & Experience Bachelors or Masters degree in Computer Science, or equivalent experience. Apple Inc. Cupertino CA

Senior Software Analysis Engineer

Apple Inc.