The document discusses different techniques for mocking dependencies in C++ unit tests, including overriding virtual methods, composing mocks, and using templates to mock automatic variables and COM interfaces. It shows examples of mocking COM interface calls, automatic variables, and method return values to enable in-memory unit testing without external dependencies.
The document discusses different techniques for mocking dependencies in C++ unit tests, including overriding virtual methods, composing mocks, and using templates to mock automatic variables and COM interfaces. It shows examples of mocking COM interface calls, automatic variables, and method return values to enable in-memory unit testing without external dependencies.
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
1) Web application security is often approached incorrectly, focusing too much on annual penetration tests and compliance, rather than ongoing monitoring and prevention through the development process.
2) Many vulnerabilities are introduced through third party libraries and dependencies, which are not properly tested or managed. Continuous testing across the full software supply chain is needed.
3) Not all vulnerabilities are equal - context is important. A risk-based approach should prioritize the most critical issues based on factors like impact, likelihood, and the development environment. Compliance alone does not ensure real security.
This document summarizes a presentation about the mobile security Linux distribution Santoku Linux. It discusses how Santoku Linux was created by modifying Lubuntu to include mobile forensic and security tools from the company viaForensics. Some key tools discussed include AFLogical OSE for Android logical acquisitions, iPhone Backup Analyzer, and utilities for analyzing mobile malware samples. Real-world examples of analyzing the Any.DO task manager app and Korean banking malware are also provided.
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
1) Web application security is often approached incorrectly, focusing too much on annual penetration tests and compliance, rather than ongoing monitoring and prevention through the development process.
2) Many vulnerabilities are introduced through third party libraries and dependencies, which are not properly tested or managed. Continuous testing across the full software supply chain is needed.
3) Not all vulnerabilities are equal - context is important. A risk-based approach should prioritize the most critical issues based on factors like impact, likelihood, and the development environment. Compliance alone does not ensure real security.
This document summarizes a presentation about the mobile security Linux distribution Santoku Linux. It discusses how Santoku Linux was created by modifying Lubuntu to include mobile forensic and security tools from the company viaForensics. Some key tools discussed include AFLogical OSE for Android logical acquisitions, iPhone Backup Analyzer, and utilities for analyzing mobile malware samples. Real-world examples of analyzing the Any.DO task manager app and Korean banking malware are also provided.
This document discusses sandboxing untrusted JavaScript from third parties to improve security. It proposes a two-tier sandbox architecture that uses JavaScript libraries and wrappers, without requiring browser modifications. Untrusted code is executed in an isolated environment defined by policy code, and can only access approved APIs. This approach aims to mediate access between code and the browser securely and efficiently while maintaining compatibility with existing third-party scripts.
This document discusses how HTML5 features can be used for authentication purposes and addresses some security challenges. It describes APIs like local storage, canvas, geolocation, and notifications that could be leveraged for authentication factors like passwords, patterns, and one-time passwords. However, it also notes risks like storing sensitive data on devices, spoofing locations, and notifications not being reliable. The document advocates using HTML5 responsibly and understanding privacy and user behavior when designing authentication solutions.
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
The document discusses code review techniques for advanced mobile applications. It begins with an overview of why mobile security is important given the rise in mobile usage. It then discusses different mobile application types and architectures that can be code reviewed, including native, hybrid, and HTML5 applications. The document outlines the goals of mobile application code reviews, such as understanding the application and finding security vulnerabilities. It provides the methodology for conducting code reviews, which includes gaining access to source code, understanding the technology, threat modeling, analyzing the code, and creating automation scripts. Finally, it discusses specific vulnerabilities that may be found in Windows Phone, hybrid, Android, and iOS applications.
The document discusses research conducted by Gregg Ganley and Gavin Black at MITRE in FY13-14 on iOS mobile application security. It describes their work on a tool called iMAS (iOS Mobile Application Security) which aims to provide additional security controls and containment for native iOS applications. iMAS addresses vulnerabilities related to runtime access, device access, application access, data at rest, and threats from app stores/malware. It utilizes techniques like encrypted code modules, forced inlining, secure MDM and more to raise security levels above standard iOS but below a fully customized/rooted mobile device environment. The document outlines the motivation, capabilities and future research directions for the iMAS project.
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
This document discusses how to defeat cross-site scripting (XSS) and cross-site request forgery (XSRF) when using JavaServer Faces (JSF) frameworks. It covers validating user input, encoding output, and protecting view states to prevent XSS, as well as configuring JSF implementations to protect against XSRF by encrypting view states and adding tokens to URLs. The presentation emphasizes testing validation, encoding, and protection in specific JSF implementations since behaviors can differ.
This document summarizes a presentation on defending against CSRF (cross-site request forgery) attacks. It discusses four main design patterns for CSRF defenses: the synchronizer token pattern, double submit cookies, challenge-response systems, and checking the referrer header. It then provides details on implementing these patterns, specifically looking at libraries and features in .NET, .NET MVC, Anticsrf, CSRFGuard, and HDIV that can help implement CSRF tokens and validation. The document covers the tradeoffs of different approaches and considerations for using them effectively on the code and server level.
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
This document provides an overview of the OWASP Broken Web Applications (OWASP BWA) project. It discusses the background and motivation for the project, describes the current status including what applications are included in the virtual machine, outlines future plans, and solicits feedback to help guide and expand the project. The goal of OWASP BWA is to provide a free, open-source virtual machine containing a variety of intentionally vulnerable web applications to aid in testing tools and techniques for finding and addressing security issues.
This document provides a summary of a presentation by Robert Hansen on the future of browser security. Hansen argues that while browser developers want to improve security and privacy, their companies' business models focused on advertising revenue prohibit them from doing so. He outlines various techniques used by advertisers and browser companies to track users against their preferences. Hansen advocates for technical controls that allow users to opt out of tracking through a "can not track" approach, rather than relying on ineffective "do not track" policies. He concludes by discussing WhiteHat Security's focus on privacy and their plans to add more security and privacy features to their Aviator browser.
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
This document summarizes Stefano di Paola's talk on security issues with JavaScript libraries. It discusses how jQuery's $() method can be considered a "sink" that executes HTML passed to it, including examples of XSS via jQuery selectors and AJAX calls. It also covers problems with JSON parsing regular expressions, AngularJS expression injection, and credentials exposed in URLs. Solutions proposed include validating all input, auditing third-party libraries, and moving away from approaches like eval() that execute untrusted code.
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
(1) A study surveyed 600 software developers and found that most did not have a basic understanding of software security concepts, with 73% failing an initial survey and the average score being 59% before training. (2) However, after training, developers' understanding of key concepts increased, with some areas like cross-site scripting seeing a 20 percentage point gain. (3) The study concluded that targeted security training can improve developers' knowledge in the short-term, though retention of this knowledge may require refresher training over time.
This document summarizes Bruno Gonçalves de Oliveira's talk on hacking web file servers for iOS. It introduces Bruno and his background in offensive security and discusses how iOS devices store a lot of information and mobile applications are often poorly designed and vulnerable. It provides examples of vulnerable file storage apps, outlines features and vulnerabilities like lack of encryption, authentication, XSS issues, and path traversal flaws. The document demonstrates exploits like unauthorized access to file systems on jailbroken devices and how to find vulnerable systems through mDNS queries. It concludes that mobile apps are the future but designers still do not prioritize security and there are too many apps for users to vet carefully.
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
This document discusses forensic investigations of web exploitations. It presents a scenario where a web server in a DMZ zone was exploited but logs are unavailable, so network traffic must be analyzed. Wireshark will be used to analyze a PCAP file of recorded traffic to determine what happened and find any traces of commands or malware. The document also provides information on the costs of different types of cyber attacks, how to decode HTTP requests, and discusses tools that can be used for network forensics investigations like Wireshark, tcpdump, and Xplico.
Appsec2013 assurance tagging-robert martindrewz lin
The document discusses engineering software systems to be more secure against attacks. It notes that reducing a system's attack surface alone is not enough, as software and networks are too complex and it is impossible to know all vulnerabilities. It then discusses characteristics of advanced persistent threats, including that the initial attack may go unnoticed and adversaries cannot be fully kept out. Finally, it argues that taking a threat-driven perspective beyond just operational defense can help balance mitigation with detection and response.
The document summarizes a presentation on vulnerabilities found in SCADA systems between 2009-2013. It analyzed vulnerabilities by component, with the majority (66%) found in communication components like Modbus and DNP3 protocols. Examples of vulnerabilities are described for several devices. Real-world issues with SCADA systems are discussed like lack of authentication and patching. Recommendations are provided like auditing SCADA networks, implementing secure protocols and password policies, and keeping systems updated.
This 3-page document discusses the real-world challenges of implementing an agile software development lifecycle (SDLC) approach from the perspectives of Chris Eng and Ryan O'Boyle. It was presented at the OWASP AppSec USA conference on November 20, 2013 and focuses on practical lessons learned and best practices for incorporating security throughout an agile SDLC.
This document outlines a presentation given by Simón Roses Femerling on software security verification tools. It discusses BinSecSweeper, an open source tool created by VulnEx to scan binaries and check that security best practices were followed in development. The presentation covers using BinSecSweeper to verify in-house software, assess a company's software security posture, and compare the security of popular browsers. Examples of plugin checks and reports generated by BinSecSweeper are also provided.
3. 多设备协同成为基本用户需求,智能手机成为个人设备中心
6 AM 9 AM 5 PM 7 PM 9 PM
Sleeping Bus At Office Bus At Home Bedroom
用户在不同的场景,
不同的需求时会选 Smart Services
Push/Download
择不同的设备 Backup/Sync,
Security scan
智能手机成为在线活
动最重要的入口,
PC多用于处理复杂
的任务
3 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED. From:Google, 2012
6. 设备协同的典型场景
设备间任务迁移 免费短信 应用跨平台自动安装/试玩
游戏进度同步,超级剪贴板,跨设备协作
LeCloud
LeCloud IM适配
LeCloud
Presence IM
Status Update
Angry bird in 2nd Level Angry bird in 12th Level
跨平台设备资源共享 跨设备文件同步 家庭个人云
协同游戏,云打印,远程投影
LeCloud
LeCloud
Remote
Remote Print
Game
6 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED. Inside home Outside Home
13. Push管理资源更新,提升体验
基于XMPP构建的Push用于设备唤醒通道,实现设备资
3rd Party App Server
源的即时更新提醒
– Push通道进行设备远程唤醒 Secure Channel with App Token
PHP / Rest HTTP
– 承载设备之间和云端到设备间,内容资源的更新提醒 MSG FrontEnd
Server
– 支持第三方服务使用联想的推送机制,以支持内容推 Establish
Msg Lenovo Unified
荐和订阅的业务 Queue Message Service
Push Server
– Restful接口,可以方便和其它服务厂商对接
Push to Device
XMPP
Apps Apps
13 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED.
14. 个人数据融合依赖于前后端一体化的系统设计
支持结构化数据和非结构化数据的管理
PB级可缩放的个人数据管理架构,支持集群扩展
富客户端设计,简化服务端的复杂性
– 文件系统增强,提取元数据(metadata),缓冲管理和分片优化
Device (Personal Data Management)
Cloud Unified Filesystem Optimized Data Mgnt. Engine
Backend (Storage + Metadata )
Metadata Management
LeHive Platform Block Storage Engine NAT
Engine
Rational DB Cluster Search Engine Key-Value Storage Jingle
14 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED.
15. Cloud Unified Filesystem,一致的方式访问云存储和本地数据
Unified file access for different cloud storage including Lenovo, Amazon and others
Adaptors fit for different Cloud Storage API
– XML definitions for minimizing the development cost
Effectively caching cloud file read/write, esp. in low-bandwidth env.
User command
Connection establish
CUFS Cloud Storage command: LS Cloud
user-level Storage
Return requested data
User AP program
User space
Kernel space
Kernel Bypass to user-level program
VFS FUSE register_filesystem( )
mount as /mnt/ldfs
15 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED.
17. 数据协同平台的核心功能 – Super Sendto
目标
– Reliably send data from one device to other devices or cloud storage
– Seamlessly integrate P2P and cloud storage into one unified interface
– Simplify the workload of app developers from many protocols to one simple API or system services
Support
Remote Detect Cache for Secure Cloud as Relay
Data Tranport Multiple
Wakeup Network Type Speed up Channel buffer
Clouds
Push for IGRS for LAN P2P in LAN, Breakpoint HTTPS as Lenovo Cloud as Cloud Unified
mobile device Direct, NAT Tunneling Resume, secure channel, relay buffer when Adaptors
wakeup, STUN for for WWAN, Metadata for device power off
Wake on LAN WWAN Compression cache hitting or in the intranet
and Transcode
Protocols: Protocols: Protocols: Protocols: Protocols: Protocols: Protocols:
Lenovo Push, STUN, IGRS, XMPP, JINGLE, HTTP, SSL REST, LEHIVE REST
XMPP, STUN, HTTP METADATA
Android C2DM
17 2012 LENOVO CONFIDENTIAL. ALL RIGHTS RESERVED.