rainit2006 / CISSP

0 stars 0 forks source link

8_software development security #6

Open rainit2006 opened 3 years ago

rainit2006 commented 3 years ago

image image

rainit2006 commented 3 years ago

expert system

エキスパートシステムは人工知能研究から生まれたコンピュータシステムで、人間の専門家の意思決定能力をエミュレートするものである。専門家のように知識についての推論によって複雑な問題を解くよう設計されており、通常のプログラミングのようにソフトウェア開発者が設定した手続きに従うわけではない。 このタイプのAIは、限定的な事象の判断や、問題の解決を目的に、「IF THEN…」といった人間があらかじめ設定したルールを組み合わせてデータベースから必要な答えを検索してくるものです。

human reasoning 人間の論理的思考

ANN

artificial neural network (ANN)

rainit2006 commented 3 years ago

software escrow

ライセンスを受けていたソフトウェア提供者(ライセンサー)が倒産して、 ライセンサーの所在やソース・コード、関連のドキュメント類が分からなくなってしまってメンテナンスができず、結局、長期にわたって蓄積したデータを放棄せざるを得なくなってしまった。 欧米諸国には、このような場合に備えてソフトウェア・エスクロウという制度があります。 image

Cleanroom software engineering

a software development process intended to produce software with a certifiable level of reliability. The basic principles of the cleanroom process are:

rainit2006 commented 3 years ago

air gap

a network security measure employed on one or more computers to ensure that a secure computer network is physically isolated from unsecured networks, such as the public Internet or an unsecured local area network.

EICAR

EICAR (European Institute for Computer Antivirus Research) は、コンピュータウイルスの研究とアンチウイルスソフトウェアの開発促進を目的として1991年に設立された組織。最近ではコンピュータウイルス以外のマルウェアも研究範囲に含むようになり、無線LANやRFIDなどを含めたコンピュータセキュリティや情報セキュリティ全般も扱うようになっている。

EICARテストファイル (EICAR Standard Anti-Virus Test File) とは EICAR が開発したアンチウイルス (AV) ソフトウェアの応答をテストするためのファイルである。

mobile code

モバイルコードとは、利用者が明示的にダウンロードやインストールなどの操作を行わなくてもネットワークを通じて他のコンピュータから取り込まれて自動的に実行されるコンピュータプログラムのこと。

pseudo-flaw

an apparent loophole deliberately implanted in an operating system program as a trap for intruders.

rainit2006 commented 3 years ago

https://developer.aliyun.com/article/726092?spm=a2c6h.12873639.0.0.7faa130cwNbE9d

Smurf attack

A Smurf attack is a distributed denial-of-service (DDoS) attack in which an attacker attempts to flood a targeted server with Internet Control Message Protocol (ICMP) packets. Keyword: ICMP image image 在Smurf攻击中,一个ICMP包被发送到网络的广播地址,但它的返回地址被修改为该网络中的某一台计算机,很可能是一个关键的服务器。然后,网络上的所有计算机都将通过ping目标计算机进行响应。 可以用两种方式防御Smurf攻击:

  1. 最直接的方法是配置所有的路由器,让它们不转发任何直接广播的数据包。这些数据包是Smurf攻击的基础,如果路由器不转发它们,那么攻击就被限定在一个子网中。
  2. 是防范特洛伊木马(本章后面将深入讨论)

ping flood/icmp flood attack

image

Fraggle

Fraggle is an attack similar to smurf, but instead of using ICMP, it uses User Datagram Protocol (UDP) as its transport protocol. The attacker broadcasts a spoofed UDP packet to the amplifying network (増幅型网络), which in turn replies to the victim's system. The larger the amplifying network, the larger the amount of traffic that is pointed at the victim's system.

SYN flood

攻撃者は、初期接続要求(SYN)パケットを繰り返し送信する. image 仕組みは次のとおりです。

  1. 攻撃者は、多くの場合なりすましのIPアドレスを利用して、大量のSYNパケットを標的となるサーバーに送信します。
  2. サーバーが各接続リクエストに応答し、応答を受け取れるようポートを開いた状態にします。
  3. サーバーは最後のACKパケットを待ちますがこれは到着せず、攻撃者はさらにSYNパケットを送信し続けます。新しいSYNパケットが到着するたびに、サーバーは新しいオープンポート接続を一定期間一時的に維持します。使用可能なポートがすべて使用されると、サーバーは正常に機能できなくなります。

SYN flood对策: SYN cookies

SYN cookiesは、SYNを送ってきたクライアントに対して、サーバから特殊なパラメータを持ったSYN ACKを送り、クライアントがそれを正しく処理し、正しいACKを返してきた場合のみサーバ側の通信関係のリソースを割り当てるというものである。

Timing attack

アルゴリズムの動作特性を利用したサイドチャネル攻撃のひとつ。暗号処理のタイミングが暗号鍵の論理値により変化することに着目し、暗号化や復号に要する時間を解析することで暗号鍵を推定する手法。 https://corgi-lab.com/programming/timing-attack/

Teardrop attack

最大伝送単位(MTU)を超えるパケットは分割されて送信されるが、分割されたパケットを組み立てるためのオフセット情報に故意に不整合な値をセットし、送信先のコンピュータを誤動作させる攻撃。 Sending malformed fragment package to a computer。

Zombie

A distributed denial-of-service attack (DDoS) involves a master/zombie relationship where an attacker gains control of the zombie computer and uses it to execute attack commands. The zombie computer becomes such by allowing the attacker to install compromising software on it. The software will, in turn, be used when it is called on to attack a specific victim.

Trapdoor

A computer trapdoor, also known as a back door, provides a secret -- or at least undocumented -- method of gaining access to an application, operating system or online service. Programmers write trapdoors into programs for a variety of reasons.

directory traversal attack

directory traversal attack where the attacker attempts to force the web application to navigate up the file hierarchy and retrieve a file. E.g. "../../../../../../../../../etc/passwd"

Cross-Site Tracing(XST)攻撃

XST攻撃とは、XSSとTRACEメソッドを組み合わせた攻撃手法であり

rainit2006 commented 3 years ago

IGMP(Internet Group Management Protocol)

IGMPスヌーピング(IGMP snooping)とは、IGMP Joinメッセージを盗み見(スヌーピング)することにより、参加したい  マルチキャストグループのアドレスを識別して、どのスイッチポートにどのマルチキャストグループの  Receiverがいるのか認識できることから、適切にマルチキャストパケットを転送できる機能のことです。

image 上の図に示すように、tIGMPスヌーピングスイッチで実行されていない場合、マルチキャストパケットはホストA、B、Cにブロードキャストされます。ただし、IGMPスヌーピングが有効にすると、IGMPスヌーピングスイッチはIGMPメッセージをリッスンして分析し、レイヤー2マルチキャスト転送エントリを設定してマルチキャストデータ転送を制御できます。このように、マルチキャストパケットは、すべてのホストにブロードキャストするのではなく、マルチキャストグループメンバーのホストAおよびCレシーバーにのみマルチキャストします。

rainit2006 commented 3 years ago

Virus

Boot sector

It is a computer virus that is in a position to attack both the boot sector and executable files of an infected computer.

Multipartite virus

A virus that spreads via multiple vectors. Multipartite viruses use multiple propagation mechanisms to defeat system security controls but do not necessarily include techniques designed to hide the malware from antivirus software

self-garbling virus

A self-garbling virus attempts to hide from anti-virus software by garbling(文字化け) its own code. When these viruses spread, they change the way their code is encoded so anti-virus software cannot find them. A small portion of the virus code decodes the garbled code when activated

stealth virus

コンピュータウィルスの中でも、コンピュータに感染したことを検知されないように正常を装う機能を持ったウィルスの総称である。

polymorphic virus

感染時に毎回異なる暗号鍵で自身を暗号化することでパターンマッチングによる検出を回避するもの。

Logic bomb

論理爆弾は、特定の条件が満たされたときに悪意のある機能を開始するソフトウェアシステムに意図的に挿入されたコードの一部です。たとえば、プログラマーがファイルを会社から解雇された場合に、ファイルの削除を開始するコードを非表示にすることがあります。

wildlist, in the wild

wildlist

Over the years, antivirus expert Joe Wells has collected reports of which viruses have been found spreading in the real world. He decided to create a list of these viruses and asked other researchers to verify or challenge the viruses on the list and offer changes. The first list was developed in July of 1993 and the first official list was published in November of 1993. The list was made available to the public, free of charge, in hopes to offset some of the 'numbers games' being played by some antivirus product developers. That list was eventually called The Wildlist.

in the wild

When a virus is reported to us by two or more Reporters, it's a pretty good indication that the virus is out there, spreading, causing real problems to users. We consider such a virus to be 'In the Wild'.

rainit2006 commented 3 years ago

Database

degree of table

The degree of a database table is the number of attributes in the table.

Entity integrity

Entity integrity is a rule in relational databases that dictates that each row must contain a unique primary key and that the primary key does not point to a null value.

View

Database views are a common method of hiding information from people who do not have a need to know of specific types of data. In an example, both Ron and Kathy are accessing the same system, but they only have views of fields that relate to their job functions.

Aggregation

Inference

Datamart, Datahouse

Datamarts are closely tied to data warehouses, but there is a distinct difference. Datamarts are a collection of data from different databases or systems that fulfill a specific need. Data warehouses are a collection of data from different databases or systems that could cover a wide variety of objectives. It is common for datamarts to be subsets of data warehouses.

Tuple

a row in a database

other

rainit2006 commented 3 years ago

Computer

user mode, supervisory mode

A processor can be executing applications in user mode, a lower privilege mode than supervisory mode (also called privileged mode). The processor will execute instructions in this mode to ensure that rogue code does not access sensitive and critical system resources.

A processor can execute in supervisory mode. This usually takes place when a process of high system privilege sends a request to the processor. If the processor is in supervisory mode it has access to user-level (non-privileged) and supervisor (privileged) code.

rainit2006 commented 3 years ago

Project initiation

The first phase of a project life cycle is the project initiation phase. The following steps are commonly executed in this phase:

Design

During the design phase, both attack surface analysis and threat modeling are used to further assess the security impact of developed software。

Split knowledge procedures

Split knowledge procedures ensure that no one person possesses all the necessary steps for carrying out important tasks. It is a way of spreading the knowledge. A company is at risk if it relies too heavily on one employee for critical functions.

rainit2006 commented 3 years ago

CORBA

CORBA全称Common Object Request Broker Architecture,是OMG(Open Manage Group)组织颁布的标准,划时代地提出了分布式对象(Distributed object)的技术

CORBA使用ORB组件来处理通信过程,ORB(Object Request Broker, 对象请求代理)即CORBA的中间3个字母。该组件是一个请求代理,客户端的代码只需要向客户端ORB发送请求,ORB去定位到服务端ORB,并且自动处理连接与传送数据。 那么在两个ORB之间如何传送“对象”呢?答案是GIOP(General Inter ORB Protocol),该协议规定了对象的序列化规则与消息传递的规则。 GIOP以短小灵活著称,但其本身是一个抽象协议。IIOP(Internet Inter-ORB Protocol )是GIOP在IP协议上的具体实现, IIOP就是一种Wire Protocol。

rainit2006 commented 3 years ago

Canary

Canary Testing is a way to reduce risk and validate new software by releasing software to a small percentage of users.

rainit2006 commented 3 years ago

SW-CMM

In level 2, the Repeatable level of the SW-CMM, an organization introduces basic lifecycle management processes. Reuse of code in an organized fashion begins, and repeatable results are expected from similar projects.
rainit2006 commented 3 years ago

Gray box

In a gray box test, the tester evaluates the software from a user perspective but has access to the source code as the test is conducted

IDEAL model

The IDEAL model is an organizational improvement model that serves as a roadmap for initiating, planning, and implementing improvement actions.

rainit2006 commented 3 years ago

Webサービスの基軸を構成するのは、SOAP、WSDL、UDDIの3つのテクノロジだ。

UDDI(Universal Description, Discovery and Integration)

ネットワーク上に数多く存在するWebサービスを効果的に利用するためには、Webサービスを登録・公開し、検索する仕組みが必要になる。この、標準的手法を提供する仕様が、今回のテーマであるUDDI(Universal Description, Discovery and Integration)だ。 image

マイクロソフトが運営するMicrosoft UDDI Business Registry、IBMのUDDI Business Registry、SAPのSAP UDDI Business Registry、そして日本のNTTコミュニケーションズによるUDDIビジネスレジトリなどが公開されている。パブリックUDDIはだれでもアクセスできるため、セキュリティを確保し、登録されるWebサービスを評価する仕組みが必要になる。

SOAP(Simple Object Access Protocol)

Webサービスを利用するためには、クライアントからサーバにサービスの要求やパラメータを渡したり、クライアントからサーバに処理結果を返したりすることが必要だ。Webサービスでは、HTTPやSMTPなどの通信プロトコル(下位プロトコルとも呼ぶ)に乗せたXML形式のメッセージによって、それらのやり取りを実現する。 SOAPとは、Webサービスで使用されるメッセージのデータフォーマットや、メッセージの処理ルールを定めた通信規約のことだ(図1)。またSOAP規格に準拠したXML形式のメッセージのことをSOAPメッセージと呼ぶ。

SOAP基于HTTP和XML。 REST 的性能比 SOAP 更好。两者都是基于文本类的传输,REST 用的 Json 比 SOAP 的 XML 格式更加简单轻巧

rainit2006 commented 3 years ago

SOA

A service-oriented architecture (SOA) provides standardized access to the most needed services to many different applications at one time.

rainit2006 commented 3 years ago

XSS

The nonpersistent cross-site scripting vulnerability is when the data provided by a web client, most commonly in HTTP query parameters or in HTML form submissions, is used immediately by server-side scripts to generate a page of results for that user without properly sanitizing the response.

The persistent XSS vulnerability occurs when the data provided by the attacker is saved by the server and then permanently displayed on “normal” pages returned to other users in the course of regular browsing without proper HTML escaping.

DOM-based vulnerabilities occur in the content processing stages performed by the client, typically in client-side JavaScript.

rainit2006 commented 2 years ago

CSRF(cross-site request forgeries) https://www.jpcert.or.jp/securecoding/AntiCSRF-201510.pdf image

nonce を使ったCSRF対策

1回めのアクセスでWebブラウザに返す入力フォームに外部からは推測できない情報をあらかじめ埋め込んでおく。 —この目的のために乱数(nonce)を使うことが多い。 2回めのアクセスで送られてきたリクエストを処理する際,nonceの存在と値の一致を確認することで、正規のリクエストか否かを識別する。

rainit2006 commented 2 years ago

Buffer Overflow Countermeasures

Stack Protectors

Canaries or canary words are known values that are placed between a buffer and control data on the stack to monitor buffer overflows. When the buffer overflows, the first data to be corrupted will usually be the canary, and a failed verification of the canary data will therefore alert of an overflow, which can then be handled, for example, by invalidating the corrupted data. A canary value should not be confused with a sentinel value.

Heap Metadata Protection

Heap Metadata Protection forces an application to fail immediately if a pointer is freed incorrectly. Heap Metadata Protection is one of several buffer overflow protection mechanisms that are available for developers who use Microsoft development tools. Of those mechanisms, Microsoft considers Heap Metadata Protection to be of moderate priority and a requirement for the Microsoft Security Development Lifecycle (SDL). The SDL process is a Microsoft-recommended means of implementing security during the development of applications that run on Microsoft systems.

ASLR

ASLR places executables into random memory addresses at boot time. This randomization also applies to both heap and stack memory. Heap randomization mitigates the chance that a heap overflow will succeed. Stack randomization ensures that a thread will be moved to a random location after it is started by a process. Moving the thread to a random address space mitigates the possibility of a stack-based overflow's success. Microsoft considers ASLR to be of critical priority and a requirement for SDL.

DEP (Data Execution Prevention)

DEP prevents executable code from executing within data pages. DEP can be enforced by either hardware or software but typically requires a DEP-enabled central processing unit (CPU). Because DEP can prevent legitimate executables that modify their own code from executing. Microsoft recommends opting in to DEP. However, DEP is considered to be of critical priority and a requirement for SDL.

Pointer Encoding

Pointer Encoding applies an exclusive OR (XOR) random value with pointers, encoding the pointer value. To exploit a pointer that has global scope, an attacker would need to overwrite the pointer with a value that is correctly encoded. Microsoft considers Pointer Encoding to be of moderate priority and a recommendation, but not a requirement, for SDL.