IOS安全编码指南 Secure Coding Guide -- 01 Introduction 上

IOS安全编码指南 Secure Coding Guide -- 01 Introduction


Introduction to Secure Coding Guide


    Secure coding is the practice of writing programs that are resistant to attack by malicious or mischievous people or programs. Secure coding helps protect a user’s data from theft or corruption. In addition(此外), an insecure program can provide access for an attacker to take control of a server(n 侍者、服务器) or a user’s computer, resulting in anything from a denial of service(|ˈsɜːvɪs|) to a single user to the compromise of secrets, loss of service, or damage to the systems of thousands of users.

        secure |sɪˈkjʊə(r)| adj 牢固的

        practice |ˈpræktɪs| noun 实践、练习、习惯

        resistant |rɪˈzɪstənt| adj 抵抗

        malicious |məˈlɪʃəs| adj 怀有恶意的

        mischievous |ˈmɪstʃɪvəs| adj 淘气的、恶意的

        theft |θeft| noun 偷窃;thief |θiːf| n 小偷

        corruption |kəˈrʌpʃn| n 腐化堕落、贪污贿赂、出错

        denial |dɪˈnaɪəl| n 拒、否

        compromise |ˈkɒmprəmaɪz| n 妥 v 妥、危及

    Secure coding is important for all software; if you write any code that runs on Macintosh computers or on iOS devices, from scripts for your own use to commercial software applications, you should be familiar with the information in this document.

        commercial |kəˈmɜːʃl| adj 商业的



At a Glance

        glance |glɑːns, American glæns| noun 一瞥 yīpiē、匆匆看一眼

    Every program is a potential target. Attackers will try to find security vulnerabilities in your applications or servers. They will then try to use these vulnerabilities to steal(|stiːl|) secrets, corrupt programs and data, and gain control of computer systems and networks. Your customers’ property and your reputation are at stake.

        potential |pəˈtenʃl| adj 潜在的、可能的 noun Uncountable 潜力

        attacker |əˈtækə(r)| noun 袭击者

        vulnerability |ˌvʌlnərəˈbɪləti| noun 漏洞、脆弱点

        security |sɪˈkjʊərəti| noun 安全

        corrupt |kəˈrʌpt| adj 堕落的,道德坏的;  贪污的,腐的;  腐的;  (文献等)错误百出的 vt 使腐;  使堕落;  使腐

          gain |geɪn| v 得;  得;  增加;  (、表)走快

          property |ˈprɒpəti| noun 财产、特性

          reputation |ˌrepjʊˈteɪʃn| noun 名声

          stake |steɪk| noun 桩、标桩、火刑柱、赌注、股本

    Security is not something that can be added to software as an afterthought; just as a shed made out of cardboard cannot be made secure by adding a padlock to the door, an insecure tool or application may require extensive redesign to secure it. You must identify the nature(本质、本性、自然界) of the threats to your software and incorporate secure coding practices(实践、练习) throughout(遍及、贯穿) the planning and development of your product. This chapter explains the types of threats that your software may face. Other chapters in this document describe specific types of vulnerabilities and give guidance on code hardening techniques to fix them.

          afterthought noun 事后想法、事后添加的东西

          shed  |ʃed| noun 储物棚、牲口棚

          cardboard |ˈkɑːdbɔːd| noun 硬纸板

          padlock |ˈpædlɒk| noun 挂锁

          identify |aɪˈdentɪfaɪ| verb 辨认、认出 

          identity card noun 身份证

          threat |θret| noun 恐吓、威胁

          incorporate |ɪnˈkɔːpəreɪt| verb 纳入、收录、合并

          harden |ˈhɑːdn| verb 使变硬、使更严肃、使变强壮

          technique |tekˈniːk| noun 方法、技术、技巧


Hackers, Crackers, and Attackers

        hacker |ˈhækə(r)| noun 黑客、劈砍者、劈砍工具

        cracker |ˈkrækə(r)| noun 薄脆饼干、爆竹 

    Contrary to the usage by most news media, within the computer industry the term hacker refers to an expert programmer—one who enjoys learning about the intricacies of code or an operating system. In general, hackers are not malicious. When most hackers find security vulnerabilities in code, they inform the company or organization that’s responsible for the code so that they can fix the problem. Some hackers—especially if they feel their warnings are being ignored—publish the vulnerabilities or even devise and publish exploits (code that takes advantage of(利用) the vulnerability).

        contrary  |ˈkɒntrəri, American also -treri| adj 相反的、逆向的 

        usage |ˈjuːsɪdʒ,ˈjuːzɪdʒ| noun 习俗、[词语的] 用法 

        term |tɜːm| noun 任期、学期、术语

        intricacy |ˈɪntrɪkəsi| nounUncountable 错综复杂、错综复杂的事物、纷繁难懂的细节

        inform |ɪnˈfɔːm| verb 通知

        responsible |rɪˈspɒnsəbl| adj 负有责任的

        especially |ɪˈspeʃəli| adverb 尤其、十分

        devise |dɪˈvaɪz| verb 设计 shèjì ‹plan, style›(invent)发明

        exploit noun 英雄业绩

        exploit 英 [ɪkˈsplɔɪt]  美 [ɪkˈsplɔɪt]  vt. 开拓;  剥削;  开采;  利用(…为自己谋利) n. 功绩;  功劳;  勋绩

        advantage |ədˈvɑːntɪdʒ, American -ˈvæn-| noun 有利条件


    The malicious individuals who break into programs and systems in order to do damage or to steal something are referred to as crackers, attackers, or black hats. Most attackers are not highly skilled, but take advantage of published exploit code and known techniques to do their damage. People (usually, though not always, young men) who use published code (scripts) to attack software and computer systems are sometimes called script kiddies(脚本小子).

        individual |ˌɪndɪˈvɪdʒʊəl| adj 单独的、个人的 noun 个人 一类人

        skilled |skɪld| adj 熟练的、老练的、技术性的

        kiddie, kiddy |ˈkɪdi| noun 小家伙

    Attackers may be motivated by a desire to steal money, identities, and other secrets for personal gain; corporate secrets for their employer’s or their own use(为他们的雇主或他们自己所用); or state secrets(国家机密) for use by hostile governments or terrorist organizations. Some crackers break into applications or operating systems just to show that they can do it; nevertheless, they can cause considerable damage. Because attacks can be automated and replicated, any weakness, no matter how slight, can be exploited.

        motivate |ˈməʊtɪveɪt| v 促动、调动的积极性

        corporate |ˈkɔːpərət| adjective 全体的、共同的、公司的、联合的

        hostile |ˈhɒstaɪl, American ˈhɒstl| adjective 不友善的、有敌意的

        terrorist |ˈterərɪst| noun 恐怖分子

        nevertheless |ˌnevəðəˈles| adverb 尽管如此

        considerable |kənˈsɪdərəbl|adj 相当大的

        automate |ˈɔːtəmeɪt| verb 使自动化 

        replicate |ˈreplɪkeɪt| verb 复制、重复获得、使自我复制

        weakness |ˈwiːknɪs| noun 虚弱、弱、不牢靠

        slight |slaɪt| adjective 小的

        exploited v. 剥削;  开采( exploit的过去式和过去分词 );  利用(…为自己谋利);  运用

    The large number of insiders who are attacking systems is of importance to security design because, whereas malicious hackers and script kiddies are most likely to rely on remote access to computers to do their dirty work, insiders might have physical access to the computer being attacked. Your software must be resistant to both attacks over a network and attacks by people sitting at the computer keyboard—you cannot rely on firewalls and server passwords to protect you.

        insider |ɪnˈsaɪdə(r)| noun 圈内人、知情者 

        importance |ɪmˈpɔːtns| noun Uncountable 重要性 

        whereas |ˌweərˈæz, American ˌhweər-| conjunction 然而、鉴于

        rely |rɪˈlaɪ| verb 依靠、信赖

        remote |rɪˈməʊt| adj 遥远的、偏远的、关系远的、细微的、冷傲的 noun 遥控器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Learn the Root Causes of Software Vulnerabilities and How to Avoid Them Commonly exploited software vulnerabilities are usually caused by avoidable software defects. Having analyzed tens of thousands of vulnerability reports since 1988, CERT has determined that a relatively small number of root causes account for most of the vulnerabilities. Secure Coding in C and C++, Second Edition, identifies and explains these root causes and shows the steps that can be taken to prevent exploitation. Moreover, this book encourages programmers to adopt security best practices and to develop a security mindset that can help protect software from tomorrow’s attacks, not just today’s. Drawing on the CERT’s reports and conclusions, Robert C. Seacord systematically identifies the program errors most likely to lead to security breaches, shows how they can be exploited, reviews the potential consequences, and presents secure alternatives. Coverage includes technical detail on how to Improve the overall security of any C or C++ application Thwart buffer overflows, stack-smashing, and return-oriented programming attacks that exploit insecure string manipulation logic Avoid vulnerabilities and security flaws resulting from the incorrect use of dynamic memory management functions Eliminate integer-related problems resulting from signed integer overflows, unsigned integer wrapping, and truncation errors Perform secure I/O, avoiding file system vulnerabilities Correctly use formatted output functions without introducing format-string vulnerabilities Avoid race conditions and other exploitable vulnerabilities while developing concurrent code The second edition features Updates for C11 and C++11 Significant revisions to chapters on strings, dynamic memory management, and integer security A new chapter on concurrency Access to the online secure coding course offered through Carnegie Mellon’s Open Learning Initiative (OLI) Secure Coding in C and C++, Second Edition, presents hundreds of examples of secure code, insecure code, and exploits, implemented for Windows and Linux. If you’re responsible for creating secure C or C++ software–or for keeping it safe–no other book offers you this much detailed, expert assistance. Table of Contents Chapter 1 Running with Scissors Chapter 2 Strings Chapter 3 Pointer Subterfuge Chapter 4 Dynamic Memory Management Chapter 5 Integer Security Chapter 6 Formatted Output Chapter 7 Concurrency Chapter 8 File I/O Chapter 9 Recommended Practices
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值