We may earn an affiliate commission when you visit our partners.
Course image
David A. Wheeler

現代のソフトウェアは常に攻撃を受けていますが、多くのソフトウェア開発者は、それらの攻撃に効果的に対処する方法を教わったことがありません。このコースでは、この問題を解決するために、セキュアなソフトウェアを開発するための基本的な知識を解説します。このコースは、ソフトウェア開発者、DevOpsプロフェッショナル、ソフトウェア技術者、Webアプリケーション開発者、およびセキュアなソフトウェアの開発方法を学ぶことに関心のある人を対象としており、情報セキュリティを改善するために、限られたリソースでも実行可能な実践的なステップに重点を置いています。このコースでは、ソフトウェア開発者が、攻撃を成功させるのが格段に難しいシステムを開発し、維持すること、攻撃が成功した場合の被害を減らすこと、潜在的な脆弱性を速やかに修復できるよう対応を迅速化することができるようになることを目指します。

このコースでは、ソフトウェアのセキュリティを検証する方法について説明します。特に、様々な静的解析および動的解析の手法と、その適用方法(継続的インテグレーション パイプラインでの適用など)について説明します。また、脅威モデルの開発方法の基本や、様々な 暗号機能の適用方法など、より専門的なトピックについても説明します。

Read more

現代のソフトウェアは常に攻撃を受けていますが、多くのソフトウェア開発者は、それらの攻撃に効果的に対処する方法を教わったことがありません。このコースでは、この問題を解決するために、セキュアなソフトウェアを開発するための基本的な知識を解説します。このコースは、ソフトウェア開発者、DevOpsプロフェッショナル、ソフトウェア技術者、Webアプリケーション開発者、およびセキュアなソフトウェアの開発方法を学ぶことに関心のある人を対象としており、情報セキュリティを改善するために、限られたリソースでも実行可能な実践的なステップに重点を置いています。このコースでは、ソフトウェア開発者が、攻撃を成功させるのが格段に難しいシステムを開発し、維持すること、攻撃が成功した場合の被害を減らすこと、潜在的な脆弱性を速やかに修復できるよう対応を迅速化することができるようになることを目指します。

このコースでは、ソフトウェアのセキュリティを検証する方法について説明します。特に、様々な静的解析および動的解析の手法と、その適用方法(継続的インテグレーション パイプラインでの適用など)について説明します。また、脅威モデルの開発方法の基本や、様々な 暗号機能の適用方法など、より専門的なトピックについても説明します。

このコースは、「セキュア ソフトウェア開発の基礎」のプロフェッショナル認定プログラムの3つのコースのうちの3つ目のコースで、オープンソースのエコシステムのセキュリティにフォーカスしたLinux FoundationのプロジェクトであるOpen Source Security Foundation(OpenSSF)によって開発されたものです。このプログラムに含まれるトレーニングコースは、最も一般的な種類の攻撃に対処するために、(開発者として)あなたが取ることができる実践的なステップに重点を置いています。

What you'll learn

  • セキュリティの検証:主要なツールの種類を含む、ソフトウェアの検査方法と、継続的インテグレーション(CI)における適用方法。これには、セキュリティ コード スキャナ/静的アプリケーション セキュリティ テスト(SAST)ツール、ソフトウェア構成解析(SCA)/依存性解析ツール、ファザー(fuzzer)、およびWebアプリケーション スキャナについての学習が含まれます。

  • 脅威モデリング/攻撃モデリング:攻撃者の視点からシステムを考える方法と、STRIDEと呼ばれるシンプルな設計分析手法の適用方法。

  • フィールディング:セキュアなソフトウェアのデプロイと運用方法、脆弱性レポートの取り扱い、再利用されるコンポーネントに公知の脆弱性がある場合の迅速なアップデート方法など。

  • アシュアランス ケースと形式手法:ソフトウェアがセキュアであることをより厳密に分析し、証明する手法の基礎。

What's inside

Syllabus

ようこそ!
第1章 検証(検証の基礎、静的解析、ソフトウェア構成解析 - SCA/依存性解析、動的解析、その他の検証トピック - 検証手法の組み合わせ)
第2章 脅威モデリング
第3章 暗号(対称/共有鍵暗号化、暗号学的ハッシュ(デジタル フィンガープリント)、公開鍵(非対称)暗号化、暗号論的擬似乱数生成器(CSPRNG)、パスワードを安全に保存する方法、トランスポート レイヤー セキュリティ(TLS)、暗号に関するその他のトピック)
Read more
第4章 その他のトピック(脆弱性の開示、アシュアランス ケース、配布、フィールディング/デプロイ、運用、廃棄、形式手法、トップ脆弱性リスト)
最終問題(ベリファイドトラックのみ)

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores security tools, analysis techniques, and approaches, which are standard in industry
Taught by David A. Wheeler, who are recognized for their work in software security
Examines threat modeling, which is highly relevant to software development
Introduces cryptographic functions, which are fundamental to secure software
Covers assurance cases and formal methods, which are advanced topics in security
Requires some background knowledge in software development

Save this course

Save セキュア ソフトウェア開発:検証、専門的トピック to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in セキュア ソフトウェア開発:検証、専門的トピック with these activities:
Review basic programming and software development concepts.
Ensure a strong foundation in programming and software development principles.
Browse courses on Programming
Show steps
  • Revisit fundamental data structures and algorithms.
  • Review software design patterns and best practices.
Participate in online tutorials on software security best practices.
Gain exposure to industry best practices for software security.
Browse courses on Security
Show steps
  • Identify reputable sources for software security tutorials.
  • Select tutorials that align with the specific areas of interest.
Read 'Building Secure Software: How to Avoid Security Problems the Right Way'
Review the foundational principles of software security.
Show steps
  • Read the chapters on security vulnerabilities and exploits.
  • Read the chapters on security design principles and patterns.
11 other activities
Expand to see all activities and additional details
Show all 14 activities
Compile research materials
Gather articles, books, and other resources related to software security to deepen your understanding of the topics covered in the course.
Show steps
  • Identify relevant keywords and search engines
  • Search for academic papers, industry reports, and blog posts
  • Organize and categorize the materials
  • Create a bibliography or reference list
Join a study group to discuss software security concepts.
Engage in peer-to-peer learning and reinforce understanding of software security concepts.
Browse courses on Security
Show steps
  • Find or form a study group with peers enrolled in the course.
  • Establish regular meeting times and create a structured agenda.
Practice static analysis techniques
Use static analysis tools like SAST and SCA to identify potential vulnerabilities and improve the security of your code.
Browse courses on Static Code Analysis
Show steps
  • Install and configure a static analysis tool
  • Run the tool on a sample codebase
  • Analyze the results and identify vulnerabilities
  • Fix the vulnerabilities and re-run the tool
Practice writing secure code in the preferred programming language.
Develop the ability to write secure code in the preferred programming language.
Browse courses on Secure Coding
Show steps
  • Choose a programming language and review its security features.
  • Practice writing code that handles user input securely.
Develop a software security policy or framework for a hypothetical organization.
Apply theoretical knowledge to a practical scenario and enhance problem-solving skills.
Show steps
  • Define the scope and objectives of the policy or framework.
  • Research industry standards and best practices for software security.
Build a threat model for a real-world system
Develop a threat model for an existing software system to identify and mitigate potential security risks.
Browse courses on Threat Modeling
Show steps
  • Identify the system's assets and vulnerabilities
  • Develop a threat list and analyze potential threats
  • Evaluate the likelihood and impact of each threat
  • Develop and implement mitigation strategies
  • Monitor and update the threat model over time
Create a presentation on a specific software security topic.
Deepen understanding of a specific software security topic and enhance presentation skills.
Browse courses on Software Security
Show steps
  • Choose a software security topic of interest.
  • Research the topic and gather relevant information.
Mentor junior developers on software security
Share your knowledge and experience by mentoring junior developers to help them improve their software security skills.
Show steps
  • Identify potential mentees within your network
  • Develop a mentoring plan and establish regular communication
  • Provide guidance, feedback, and support on software security topics
  • Encourage mentees to engage in hands-on activities and projects
  • Track progress and adjust the mentoring plan as needed
Present on a software security topic
Develop and deliver a presentation on a specific software security topic to an audience of peers or industry professionals.
Show steps
  • Choose a specific software security topic
  • Research and gather information on the topic
  • Create slides and prepare a presentation outline
  • Rehearse and practice the presentation
  • Deliver the presentation
Attend industry conferences or meetups focused on software security.
Connect with professionals in the field and stay abreast of the latest trends and developments.
Browse courses on Software Security
Show steps
  • Identify relevant conferences or meetups in the local area or online.
  • Prepare questions and talking points to engage with speakers and attendees.
Contribute to an open-source security project
Get hands-on experience in software security by contributing to an open-source project focused on security.
Browse courses on Open Source Software
Show steps
  • Identify an open-source security project
  • Review the project's documentation and codebase
  • Identify areas where you can contribute your skills
  • Submit pull requests or issue reports to the project
  • Collaborate with other contributors and the project maintainers

Career center

Learners who complete セキュア ソフトウェア開発:検証、専門的トピック will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers write code to develop and implement software applications. This course helps build a foundation for writing secure software, which will give you an advantage over others who may not have the same knowledge.
Web Application Developer
Web Application Developers develop and maintain websites and web applications. This course can help you build web applications that are more secure against common threats and vulnerabilities.
DevOps Engineer
DevOps Engineers oversee the development and deployment of software applications. This course may help you implement secure and efficient software development practices, which could increase your value as an engineer.
Information Security Analyst
Information Security Analysts help organizations protect their information and computer systems from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may provide you with additional tools to use to protect information at your organization.
Systems Security Administrator
Systems Security Administrators oversee the security of computer systems. This course may help you to implement and maintain security measures to protect your organization's systems.
Risk Analyst
Risk Analysts identify, assess, and manage risks to an organization. This course may help you to identify and mitigate the risks associated with software development and deployment.
Security Consultant
Security Consultants provide advice and guidance to organizations on how to improve their security posture. This course may help you to develop and implement more effective security strategies and policies.
Incident Responder
Incident Responders investigate and respond to security incidents. This course may help you to develop and implement more effective incident response plans and procedures.
Quality Assurance Analyst
Quality Assurance Analysts ensure that software applications meet the requirements of the users and are free of defects. This course may help you to develop and implement more effective quality assurance procedures.
Software Test Engineer
Software Test Engineers test software applications to ensure that they are free of defects and meet the requirements of the users. This course may help you to develop and implement more effective test plans and procedures.
Penetration Tester
Penetration Testers identify and exploit vulnerabilities in computer systems and networks. This course may help you to develop and implement more effective penetration testing strategies.
Security Architect
Security Architects design and implement security solutions for organizations. This course may help you to develop and implement more effective security architectures.
Security Auditor
Security Auditors assess the security of computer systems and networks. This course may help you to identify and mitigate the risks associated with software development and deployment.
Network Engineer
Network Engineers design and implement computer networks. This course may help you to develop and implement more secure network architectures.
IT Manager
IT Managers oversee the computer systems and networks of organizations. This course may help you to develop and implement more effective IT security policies and procedures.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in セキュア ソフトウェア開発:検証、専門的トピック.
「セキュアなソフトウェア開発の基礎」の補完教材として広く使用されている教科書。C言語とC++言語の安全なコーディング方法について体系的に解説。
安全なソフトウェア開発プロセスを実装するための実用的なガイド。ソースコードから安全なソフトウェアまで、包括的な手順を示す。
ソフトウェアセキュリティテストの包括的なガイド。安全なソフトウェアの開発に不可欠な、さまざまなテスト手法について説明。
開発者向けの安全なコーディングに関する実践的なガイド。一般的なセキュリティの落とし穴を特定し、それらに対処するための具体的な対策を提供。
分散システムのセキュリティに関する包括的なガイド。システムの設計、実装、運用の各段階における考慮事項について説明。
暗号化技術の設計と実践に関する包括的なガイド。暗号化アルゴリズム、プロトコル、実装の原理を詳しく説明。
安全なソフトウェア開発の基礎を固めるための包括的なガイド。ソフトウェア開発ライフサイクル全体を通して安全性を組み込むための原則と実践を提供。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to セキュア ソフトウェア開発:検証、専門的トピック.
セキュア ソフトウェア開発:要件、設計、再利用
Most relevant
セキュア ソフトウェア開発:実装
Most relevant
Gemini for end-to-end SDLC - 日本語版
Most relevant
Next.js × shadcn/ui × Supabaseで本格的なWebアプリ開発を学ぶフルスタック講座
Most relevant
Google Sheets 日本語版
Most relevant
【フォーム開発実践】認証やお問い合わせフォームをNext.js/RHF/zod等のモダン技術を使って開発する実践講座
Most relevant
【初心者向け】直感的にわかる!Arduino(アルディーノ)で初めての電子工作 / デジタル回路設計 の基礎を学ぼう
Most relevant
Google Docs 日本語版
Most relevant
通訳者が教える 英語筋肉の鍛え方と使い方 / 誰でも英語が話せるようになる発音練習法A to Zその4・発音編
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser