CategoriesTech Learning JourneyToday..what i learn

Coursera : IBM Application Security for Developers and DevOps Professionals

ทำงานเป็น QA อยู่ในทีมที่ต้องทำงานเกี่ยวกับเรื่อง Authentication , Authorization

หลายครั้งที่รู้สึกว่าฟังคำศัพท์ของ Secuirty ไม่รู้เรื่องเลยว่าตอนนี้คนในทีมกำลังพูดคุยอะไรกัน

เลยเป็นที่มาให้มาลงเรียนหัวข้อนี้กับทาง IBM ผ่านทาง Coursera

หลังเรียนจบ คลังคำศัพท์เกี่ยวกับ Security เพิ่มมากขึ้น รู้จัก Tools ต่างๆเพิ่มมากขึ้น ถือว่าคุ้มค่าที่มาลงเรียน

หวังว่าความรู้ที่ได้เรียนไปแล้วสามารถนำมาประยุกต์กับงาน QA ได้ดียิ่งขึ้น

ขอขอบคุณ IBM มา ณ ที่นี้ด้วยครับ


Working as a QA in a team dealing with Authentication and Authorization, I often found myself lost when listening to discussions about security terms. I barely understood what my teammates were talking about, which led me to enroll in this course with IBM through Coursera.

After completing the course, my vocabulary in security has significantly expanded, and I’ve gained knowledge about various tools. It was definitely worth taking this course. I hope the knowledge I’ve gained can be effectively applied to improve my QA work.

A big thank you to IBM for this amazing learning opportunity!

https://coursera.org/share/723bc25ceccf70223f09f6050fc7ab35


Module 1 Glossary: Introduction to Security for Application Development

TermDefinition
Access controlSecurity measures employed to govern and control the access and permissions provided to users, processes, or entities operating within a system or network.
AlertingResponsive component of a monitoring system that performs actions based on changes in metric values.
Application layerThe seventh and topmost layer of the OSI model is used by developers for building and deploying applications.
Application Programming Interface (API)A collection of guidelines, protocols, and tools that allow diverse software applications to communicate with each other.
Asymmetric encryptionWhen different keys are used to encrypt and decrypt.
AuthenticationProcess of verifying a user’s identity.
AuthorizationProcess of determining a user’s access rights.
ChecksumsDerived values from data employed to identify errors that may have occurred during the transmission or storage of that data.
CI/CDCI/CD, which stands for continuous integration (CI) and continuous delivery (CD), creates a faster and more precise way of combining the work of different people into one cohesive product.
CI/CD pipelineThe continuous integration/continuous delivery (CI/CD) pipeline is an agile DevOps workflow focused on a frequent and reliable software delivery process.
Code scannersProvide vulnerability reporting and insights after they scan code in your repositories.
CodeSonarA static code analysis tool from GrammaTech used to find and fix bugs and security vulnerabilities in source and binary code.
Container scanningScans code deployed to containers, which may contain vulnerabilities and security threats.
ContainersExecutable software units in which application code is packaged along with its libraries and dependencies in common ways to run the code anywhere, whether it be on a desktop, traditional IT, or the cloud.
CoverityAn incremental analysis scanner for programming languages such as C, C++, Java, and Python.
Cryptographic keysEssential tools used to secure data from cyberattacks during transmission and storage.
Cryptographic serviceA confidentiality service that keeps data secret. Its purpose is to secure data from others, even when the data traverses a non-secure network without the necessary credentials.
Data link layerThe second layer of the OSI model transforms the transmitted raw data into a line free from undetected errors.
DevSecOpsDevSecOps (DevOps with an emphasis on security) is a set of practices that automate security integration across the software development lifecycle (or SDLC), from original design to integration, testing, deployment, and software delivery.
Dialog controlRefers to the management and coordination of communication sessions between two devices or systems.
E-commerce transactionsRefer to the buying and selling of goods and services over the internet.
EncryptionProcess of encoding information so that only those users with authorized access can decode it.
Endpoint securityDetects application and system anomalies and protects systems, servers, and various types of devices connected to a network.
Exhaustive documentationSecurity pattern documentation that is accessible, precise, easy to read, and follow through. Software developers are inclined to refer to such documentation.
eXtensible Access Control Markup Language (XACML)A standard used to define and implement access control policies. It offers a comprehensive framework for managing and enforcing access control decisions across different systems, applications, and services. This empowers organizations to regulate resource access and specific actions based on established policies.
eXtensible Markup Language (XML)A widely utilized markup language created to organize, transport, and structure data in a format that is human-readable and platform-independent.
FirewallA network security device or software that acts as a barrier between a trusted internal network and an untrusted external network like the internet.
Functional Verification Test (FVT)Validates the software’s functionality using the solution specification document, design papers, and use case documents.
GitHubAn online platform that offers version control for software development projects, enabling developers to collaborate on code, monitor changes, and manage their source code repositories in a distributed manner.
Hash algorithmsA hash algorithm, also referred to as a hash function, is a mathematical procedure that accepts input of any size and generates a fixed-size output called the hash value or hash code.
Hashicorp’s VaultAn open-source, identity-based secret and encryption management tool.
HijackingA type of cyberattack in which an unauthorized person or entity intercepts and manipulates communication between two parties who believe that they are directly communicating with each other.
Hypertext Transport Protocol Secure (HTTPS)Used for secure communication between computers over the World Wide Web (WWW). It ensures that the data exchanged between the browser and the website remains confidential and protected from unauthorized access.
Identification and Access Management (IAM)Important security mechanisms to grant permissions to applications and systems within cloud infrastructures.
IntegrityA cryptographic service that guarantees data has not been modified or tampered with during or after reception and helps support the anti-tampering of data for users needing data verification between sender and receiver.
InteroperableThe ability of diverse systems, software, or components to collaborate, function cohesively, and exchange information effectively and seamlessly.
Intrusion detectionThe ongoing detection of any cyberattacks, threats, or intrusions that may compromise an application or system.
Linux kernelCore component of an operating system that provides a platform for running programs and various services on top of it.
Man-in-the-middle attacksA type of cyberattack wherein the attacker covertly intercepts and potentially modifies the communication between two parties who are under the impression that they are directly communicating with each other.
Message digestsCryptographic hash functions used to compute checksums of data blocks. It can also be used to sign and verify signatures.
Network firewallA security device or software that serves as a protective barrier between an internal network, like a corporate network, and an external network, such as the internet. Its role is to regulate and observe incoming and outgoing network traffic.
Network layerThe third layer of the OSI model handles data transmission and control of the subnet.
Network mapper (Nmap)Used to discover hosts and services on a computer network by sending packets and analyzing responses.
Network securityDetects application and system anomalies and monitors a network using a network tool such as Nmap or Snort.
Open Systems Interconnection (OSI model)Enables communication between diverse communication systems using standard protocols.
Open-source software library (OpenSSL)A library of software that implements the Secure Socket Layer (or SSL) protocol. It is an open-source toolkit to ensure secure communication with cryptography for all types of communication, from personal to commercial and e-commerce transactions.
OrchestrationThe automated configuration, management, and coordination of computer systems, applications, and services.
OWASPOpen Web Application Security Project
PGPPretty good privacy
Physical layerThe lowest layer of the OSI model transmits bits of raw information.
Presentation layerThe sixth layer of the OSI model focuses on the syntax and semantics of data being transmitted from one point to another.
Private keyA confidential piece of information utilized to demonstrate ownership of digital assets.
Process for Attack Simulation and Threat Analysis (PASTA)A risk-based model that connects to business objectives and technical requirements.
Public keyA cryptographic key used for the encryption and validation of digital signatures.
Public key cryptographyA public cryptographic algorithm that uses public and private keys. Rivest, Shamir, and Adleman (or RSA) is the most popular implementation of public key cryptography. RSA provides secrecy, authentication, and encryption for anyone to use. It is also used to implement prime number generation to generate private keys using different sizes of key lengths depending upon the level of encryption needed.
Role-based access control (RBAC)An access control framework that regulates resource access according to predefined roles. In an RBAC system, users are allocated specific roles, each linked to a set of permissions that determine the actions or resources accessible to users within that role.
Scrum frameworkA framework under which individuals may handle complicated adaptive challenges while producing high-value goods in a productive and creative manner.
Secure shell (SSH)Secure connection protection for connecting with remote devices, such as physical and cloud servers.
Secure Socket Layer (SSL)A protocol based on encryption technology that provides secure data transmission over the internet. It ensures that data exchanged between a web browser and a web server remains confidential and protected from unauthorized access during transit.
Security Assertion Markup Language (SAML)Facilitates the exchange of authentication and authorization data among various entities. It enables smooth and secure authentication across diverse domains, empowering users to access multiple applications and services using a single set of credentials.
Security patternA set of rules that represent and define a reusable solution to recurring security threats or issues. By following security patterns, organizations establish robust security frameworks while ensuring the confidentiality, integrity, and availability of the system’s data.
Security pattern catalogEmpowers software developers to review and choose security patterns for developing necessary and additional security features for their application code. When developing for deployment, a well-classified security pattern catalog enables developers to reuse security patterns across multiple applications. Software developers also rely on security pattern catalogs to become more aware of the associated security mechanisms.
Serverless computingA cloud application development and execution model that lets developers build and run code without managing servers or paying for idle cloud infrastructure.
Session layerThe fifth OSI model layer establishes multiple sessions from different machines while establishing consistent sessions if a crash occurs.
SnortA network intrusion detection and prevention system that provides real-time analysis of network traffic.
Snyk CodeAn integrated development tool that performs semantic analysis to discover coding and security bugs throughout the development phase.
Software Development Lifecycle (SDLC)A framework that specifies the steps involved in software development at each stage. It details the strategy for developing, deploying, and maintaining a program.
SpoofingA form of network attack that involves manipulating network traffic or data to gain unauthorized access to systems, services, or users.
Static ReviewerEliminates well-known vulnerabilities. It is a component within the Security Reviewer suite, compliant with frameworks including the Open Web Application Security Project (or OWASP), Common Vulnerabilities and Exposures (or CVEs), and the National Institute of Standards and Technology (or NIST).
STRIDESTRIDE means Spoofing identity, Tampering with data, Repudiation, Information disclosure, Denial of service, and Elevation of privileges. STRIDE, which came from Microsoft, evaluates applications and systems to find threats and vulnerabilities.
SubnetsA subnetwork (or subnet) is a smaller portion of a larger network partitioned to create more feasible segments of the network with higher efficiency.
Symmetric ciphersCryptographic algorithms that use the same key for both encryption and decryption of data.
Symmetric encryptionWhen the same key is used for both encrypting and decrypting.
System-call auditingThe retrieval and review of system-call information from a kernel, such as the Linux kernel.
Threat modelingProvides a process to analyze ongoing threats and eliminate the potential for software coding weaknesses and vulnerabilities.
Threat monitoringScanning code repositories and containers to find security issues. Password mishandling, protocol insecurities, and incorrect permissions are examples of issues that you can discover with threat monitoring.
Token managementInvolves the procedures and protocols employed in handling and controlling tokens, which are unique pieces of data or strings used in diverse systems and applications.
Transport layerThe fourth layer of the OSI model accepts transmissions or data from the network layer and chops them into smaller units or packets for passing them back to the network layer.
Transport Layer Security (TLS)A protocol based on encryption technology used to secure communications over a computer network. It is the successor to SSL and is designed using an advanced encryption algorithm.
Two-factor authenticationThis added security measure is employed to safeguard user accounts and digital data. It demands that users present two distinct forms of identification before obtaining access to a system, service, or application.
Unified Modelling Language (UML)Can visually model and represent a system for a better understanding of the system’s architecture and design.
Visual, Agile, and Simple Threat (VAST)An agile methodology with application and operational threat models. VAST uses process-flow diagrams to represent the architectural perspective.
Vulnerability patchingThe distribution of security updates or patches improves functionality or eliminates vulnerabilities in an IT system or service.
Vulnerability scannerA specialized software tool designed to detect and evaluate security ineffectiveness in computer systems, networks, applications, and other digital assets.
Vulnerability scanningThe search for security vulnerabilities from within the code and outside of an application.
Web services securityA set of measures and protocols implemented to ensure confidentiality, integrity, and authentication of data exchanged between web services and their clients over the internet.

Module 2 Glossary: Security Testing and Mitigation Strategies

TermDefinition
Ad hoc testingRandom, informal testing without a plan for the discovery of a vulnerability.
BDD-SecurityA security testing framework that uses behavior-driven development.
Burp SuiteA vulnerability scanner that is popular for scanning web applications. You can set up automated scans of a website or perform manual scanning by crawling the overall structure of a website or web application.
Code reviewIn code review, you use automated static analysis security testing and perform manual code inspection.
DASTDynamic application security testing (or DAST) evaluates the application from the outside in through the front end.
Dynamic analysisDynamic analysis is the process of testing and evaluating an application as it is executing.
Exploratory testingTakes place outside of formal testing.
GitHub SCAIt is for viewing dependency packages and vulnerabilities while using GitHub.com.
GPLGeneral Public License.
GuantltA security framework that hooks into security tools for simplified integration.
Integration testsFor testing the integration of several coded classes within an application. You can perform integration tests across application tiers and a wide testing scope.
IASTInteractive Application Self-testing (or IAST) scans for vulnerabilities during testing.
JSONJavaScript Object Notation.
MittnPopular tool suite to include in continuous integration.
NessusIt is a vulnerability scanner that scans operating systems, network devices, and critical infrastructure for vulnerabilities, threats, and compliance violations.
OWASPOpen Web Application Security Project.
OWASP Dependency-CheckIt is an SCA for checking for vulnerabilities within project dependencies.
OWASP Dependency-TrackIt is an SCA for identifying any risks within the software supply chain.
OWASP Software Component Verification StandardIt is a community-supported effort to build a sustainable framework for reducing risk within a software supply chain.
RASPRuntime Application Self-Protection (or RASP) looks for assaults in the production environment.
Runtime protectionRuntime protection is a modern security mechanism that shields applications against threats while the applications are running.
SALSASupply-chain Levels for Software Artifacts (or SALSA) provides a security framework for improving integrity and preventing tampering by implementing standards and controls.
SASTStatic application security testing (or SAST) examines source code to identify security flaws that render your organization’s applications vulnerable to attack.
SCASoftware component analysis (or SCA) is the process of determining which open-source components and dependencies are used in your application.
SCMSource control management.
Security testingSecurity testing provides a secure code baseline for development. It should be performed on all new codes to reduce the risk of impacts.
SnykA developer security platform for securing code, dependencies, containers, and infrastructure as code.
Static analysisStatic analysis examines all code or runtime binaries to help detect common vulnerabilities without executing code or running programs.
SWID TagsSoftware Identification Tags (or SWID Tags) are standard to track software installed on managed devices.
Unit testingFor testing classes and methods to evaluate application programming interface (or API) contracts. You can perform unit testing on individual classes with limited scope.
Vulnerability analysisIt is a method of identifying possible application flaws that could jeopardize your application.
XMLExtensible Markup Language.
ZAPZed Attack Proxy (or Zap) is a vulnerability scanner. It is an OWASP tool and open-source software that uses spiders to crawl web applications.

Module 3 Glossary: OWASP Application Security Risks

TermDefinition
Blind cross-site scriptingInjects a script that has a payload to be executed on the backend of an application by the user or the administrator without their knowing about it.
Broken access controlWhen attackers can access, modify, delete, or perform actions outside of an application or system’s intended permissions.
Buffer overflowsOne of the four pervasive types of SQL injection attacks. This happens when a program allocates more data in a buffer than the buffer can store. A buffer overflow causes a system or program to crash or execute malicious code.
Code injectionOne of the four pervasive types of SQL injection attacks.
Credential stuffingOccurs when an attacker has a list of legitimate usernames and passwords. The attacker employs automation to use those passwords in an attack.
Cross-site scriptingWhen an application takes untrusted data and then sends it to a web browser without proper validation or escaping. You may see cross-site scripting represented as ‘XSS.’
Cross-site scripting attackCan deface websites by replacing or removing images or content.
Function call injectionOne of the four pervasive types of SQL injection attacks.
HTTP Host header injectionWhen creating URIs for links in web applications, developers typically use the HTTP host header available in the HTTP request that is sent from the client side. An attacker can exploit this practice by sending a fake header that contains a domain name that, for example, can be used to corrupt the web cache or password reset emails.
Lightweight Directory Access Protocol (LDAP) injectionExploits websites that construct LDAP statements from data provided by users. In this type of attack, an attacker might modify LDAP statements using a local proxy in order to execute arbitrary commands (granting permissions to unauthorized queries) or modify the content of the LDAP tree.
LogstashA data processing pipeline that collects, parses, and stores logs for future use. IBM Financial Crimes Alerts Insight with Watson (FCAI) uses Logstash to collect and normalize log files.
Operating system command injectionOS command injection, also termed shell injection, is a web security vulnerability where an attacker can execute arbitrary operating system (OS) commands on a server running an application and can fully compromise it along with all its data.
OWASPOpen Web Application Security Project, launched in 2001 and formally formed in 2004, is a foundation that focuses on software security. OWASP supports the security industry with the OWASP Top 10.
OWASP Top 10A report that identifies current software security vulnerability concerns and represents a consensus from the OWASP core team, security analysts, security organizations, and other security experts. The OWASP Top 10 is used globally as a standard check for web application security.
Principle of Least Privilege (or PoLP)Users should only have the minimum permissions necessary to perform their tasks.
Reflected cross-site scripting attackA reflected cross-site scripting attack injects a script to be reflected from the attacked server to users on a system.
Server-side request forgeries (SSRF)A server site attack that results in sensitive information being disclosed or leaked from the backend server of the application.
SQL injectionTakes advantage of the SQL syntax to inject commands that can read or modify a database or compromise the meaning of the original SQL query. In this type of attack, an attacker can spoof an identity; expose, tamper with, destroy, or make existing data unavailable; or become the administrator of the database server.
SQL injection attacksAttempt to exploit web application vulnerabilities by concatenating user input with SQL queries. If successful, these attacks can execute malicious SQL commands using a legitimate web application connection.
SQL manipulationOne of the most common types of SQL injection and an attack that modifies an SQL statement of set operations.
Stored cross-site scriptingA stored cross-site scripting attack injects a script that becomes permanently stored in a database or on a targeted server.
VaultDeveloped by HashiCorp, Vault is a token-based storage solution for managing secrets. This tool provides policies that constrain user access and privileges when users interact with a Vault server.

Module 4 Glossary: Security Best Practices

TermDefinition
ClickA framework for writing command line applications.
Code practicesThey are part of the software development process for secure software development.
DependenciesIt adds features and functionality to the software without writing it from scratch. Dependencies are reusable code found in a library (package or module) that your code makes calls to.
FlaskIt is a web framework written in Python that provides you with tools, libraries, and other features for building web applications.
Insecure development environmentIt is an environment where production systems are secure, but the development environment where coding is built and deployed is a free-for-all with direct connections to the production infrastructure.
ItsDangerousA secure data integrity dependency.
JinjaA template language for rendering web pages.
LDAPLightweight Directory Access Protocol.
MarkupSafeA security dependency for untrusted input.
Multi-factor authentication (MFA)It is an identity verification method that requires users to provide at least one authentication factor in addition to a password, or at least two authentication factors instead of a password, to gain access to a website, application, or network.
Secure development environmentIt is an ongoing process of securing the network, compute resources, and storage devices on-premises and in the cloud.
SQLStructured Query Language.
Validating inputValidating input means checking (on the server side) that the input provided by the user or attacker is expected.
WerkzeugA web server gateway interface.
XMLExtensible Markup Language.