본문 바로가기
정보처리기사

Chapter 10, 애플리케이션 테스트 관리

by Pooh0216 2021. 5. 12.

1. 소스코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현 하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동을 말한다.

2. 기밀성(Confidentiality)는 인가되지 않은 개인 혹인 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성이다.

3. 무결성은 정당한 방법을 따르지 않으면 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성이다.

4. 가용성(Availability)는 권한을 가진 사용자나 애플리케이션이 원하는 서비스르 지속 사용할 수 있도록 보장하는 특성이다.

5. 자산은 조직 데이터 또는 조직의 소유자가 가치를 부여한 대상이다.

6. (위협)은 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위이다.

7. (취약점)은 위협이 발생하기 위한 사전 조건에 따른 상황이다.

8. 위험(Risk)는 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성이다.

9. 개인정보보호법은 개인정보처리 과정 상의 정보 주체와 개인정보처리자의 권리, 의무 등을 규정한 법이다.

10. 개인정보보호 관련 법령은 개인정보보호법, 정보통신망법, 신용정보법 등이 있다.

11. 고유식별정보는 주민등록번호, 연권번호, 운전면허번호, 외국인 등록번호이다.

12. 개인정보의 분실, 도난, 유출, 변조, 훼손되지 않도록 암호화등 안전성 확보에 필요한 조치가 필요하다.

13. SSL(Secure Socket Layer)는 웹사이트에서 이루어지는 모든 정보전송이 https://로 암호화 프로토콜을 통해 안전하게 전송되게 하는 인증서이다.

14. 개인정보의 보호 조치를 위해 비밀번호 및 바이오 정보는 일방향 암호화 저장한다.

15. 사용자는 정보처리 기기 및 시스템을 활용해 자산을 사용하는 사람 또는 기관이다.

16. 관리자는 자산의 소유자로 부터 관리 위임을 받은 자이다.

17. 기업이 가진 중요 자산을 보호하기 위해 자산의 식별과 평가를 수행한다.

18. 솔트(Salt)란 일방향 해시 함수에서 다이제스트를 생성할 때 추가 되는 바이트 단위의 임의의 문자열이다.

19. MS-SDL 방법론은 마이크로소프트에서 안전한 소프트웨어를 개발하기 위해 자체 수립한 개발 보안 방법론이다.

20. 입력데이터 검증 및 표현은 프로그램 입력 값에 대한 검증 누락, 부적절한 검증, 데이터의 잘못된 형식 지정 등으로 인해 발생하는 보안 약점이다.

21. SQL Injection은 공격자가 입력창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람, 조작할 수 있는 취약점 공격기법이다.

22. (XSS)는 외부 입,출력 값에 스크립트가 삽입되지 못하도록 & <> "'/() 등에 대해 문자열 치환 함수를 구현한다.

23. SQL 삽입 공격을 방지하기 위해 매개변수를 받는 Prepared Statement객체를 상수 문자열로 생성하는 방법이 있다.

24. 크로스사이트 스크립트(XSS)는 우베페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도할 수 있는 공격기법이다.

25. XSS는 3가지 공격방법인 Reflected XSS, Stored XSS, DOM XSS가 있다.

26. JSTL은 JSP에서 제공하는 태그 등을 지원하는 JSP표준 태그 라이브러리의 약어이다.

27. 패스워드는 숫자/영문 등 혼합시 최소 (10) 자 이상 요구한다.

28. 패스워드의 변경 주기는 최소 (6) 개월 마다 변경하는 것이다.

29. (정적분석)은 SW를 실행하지 않고 소스 코드 수준으로 보안 약점을 분석하는 방법이다.

30. 충분한 키 길이를 확보하기 위하여 RSA는 최소 2048Bit이상 되어야 한다.

31. 시드(Seed)란 어떤 특정한 시작 숫자를 정해 주면 컴퓨터가 정해진 알고리즘에 의해 마치 난수 처럼 보이는 수열을 생성하는데, 이때의 시작 숫자이다.

32. 중요 정보를 평문으로 송, 수신할 경우 (스니핑(Sniffing)) 공격에 노출될 가능성이 있다.

33. (경쟁조건)은 메모리가 공유되는 하나의 객체에 두 개 이상의 스레드가 동시에 값을 변경하려고 할 때 발생되는 성능 저하의 문제점이다.

34. 종료 조건이 없는 재귀 함수나 종료되지 않은 반복문(for, while) 를 사용하는 것은 보안 약점이다.

35. 에러 또는 에러정보에 중요정보(시스템 내부 정보 등)가 포함될 때 발생할 수 있는 보안 약점이다.

36. 오류 상황 대응 부재를 Java에서는 Try-catch문이 대응 방법이다.

37. 부적절한 (자원해제)는 자원 고갈로 인한 시스템 오류 유발 보안 약점이다.

38 (널 포인터 역참조)는 널 값을 고려하지 않은 코드에서 발생하는 보안 약점이다.

39. 세션(Session)은 클라잉언트와 서버의 논리적인 연결이다.

40. 취약한 (API) 사용은 금지되거나 안전하지 않은 함수를 사용하는 보안 약점이다.

41. (SYN플러딩(SYN Flooding)) 은 서버의 동시 가용 사용자수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격이다.

42. UDP 플러딩은 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답메시지(ICMP Destination Unreachable)를 생성하여 지속해서 자원을 고갈시키는 공격이다.

43. 스머프(smurf)는 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게  ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 마비시키는 공격이다.

44. PoD(Ping of Death)는 큰 사이즈의 패킷을 의도적으로 목표 시스템으로 발생시켜 시스템이 서비스 할 수 없는 상태로 만드는 공격이다.

45. HTTPGET 플러딩(Flooding)은 Cache Control Attack 공격이라고도 하며 HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹서버가 직접 처리하도록 유도하여 웹서버 자원을 소진 시키는 서비스 거부 공격이다.

46. Slowloris(Slow HTTP Header Dos) 는 HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 무자열인 '\r\n\r\n'을 전송하지 않고 '\r\n' 만 전송하여 대상 웹서버와 연결 상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격이다.

47. RUDY(Slow HTTP Post DOS)는 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계쏙 연결 상태를 유지시키는 공격이다.

48. 패스워드 크래킹(Password Cracking)은 사전 (Dictionary) 크래킹과 무차별 (Brute Force) 크래키이 방법을 사용해 네트워크 패스워드를 탐색하는 공격이다.

49. 랜드어택(Land Attack)은 출발지(Source)IP 와 목적지 (Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내개 하여 시스템의 가용성을 침해하는 공격기법이다.

50. 티어드롭(TearDrop)은 IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 Dos 공격이다.

51. (대칭키 암호 방식)은 암호화와 복호화에 같은 암호키를 쓰는 알고리즘이다.

52. (블록 암호 방식)은 긴 평문을 암호화 하기 위해 고정 길이의 블록을 암호화 하는 블록 암호 알고리즘을 반복하는 방법이다.

53. (스트림 암호 방식)은 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식이다.

54. (비대칭 키 암호 방식) 은 공개키를 이용해 암호화하고 공개키에 해당하는 개인 키를 이용해 복호화 하는 암호 방식이다.

55. 디피-헬만(Diffie-Hellman)은 암호키를 교환하는 방법으로서 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀키를 공유할 수 있도록 하는 방식이다.

56. RSA는 로널드 라이베스트, 아디 샤미르, 레너드 애들먼의 앞글자를 딴 비 대칭 키(공개 키) 암호화 알고리즘으로 소인수 분해의 어려움을 이용한 방식이다.

57. SHA는 미국 국가안보국(NSA)이 1993년에 처음으로 설계했으며, 미국 국가 표준으로 지정된 해시 암호화 알고리즘이다.

58. MD5는 RFC 1321로 지정되어 있으며, 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 128Bit 해시 암호화 알고리즘이다.

59. 세션 하이재킹(Session HiJacking)은 TCP신뢰성 기반의 연결을 이용한 공격방법으로, 통신 내용을 엿보건, 세션을 가로채어 정상적인 인증 과정을 무시하고, 불법으로 시스템에 접근할 수 있는 공격이다.

60. Seven Touchpoints는 소프트웨어 보안의 모범사례를 소프트웨어 개발 라이프사이클에 통합하여 객관적인 위험 분석 및 테스트를 거쳐 안전한 소프트웨어를 만드는 방법을 정의한 방법론이다.

61. 스니핑(Sniffing)은 공격 대상에겍 직접 공격을 하지 않고 데이터만 몰랠 들여다보는 수동적 공격기법이다.

62. 경쟁조건(Race Condition)은 메모리가 공유되는 하나의 객체에 두 개 이상의 스레드가 동시에 값을 변경하려고 할 때 발생하는 성능 저하의 문제점이다.

63. 널 포인터 역참조는 널 값을 고려하지 않은 코드에서 발생하는 보안 약점으로 의도적으로 널 값을 유발해 예외 상황을 확인하고 추후 공객에 활용한다.

64. 부적절한 지문 해제는 자원 고갈로 인한 시스템 오류 유발 보안 약점으로 소켓, 힙 메모리 등 자원을 할당 받아 사용 후 미반환 시 발생한다.

65. 초기화 되지 않은 변수 사용은 C언어 함수 내 지역변수를 초기화하지 않고 사요할 시 발생하는 보안 취약점이다.

66. (잘못된 세션에 의한 정보노출)은 멀티스레드 호나경에서 서로 다른 세션간 데이터가 공유될 수 있는 보안 약점이다.

67. (제거되지 않은 디버그 코드)는 의도하지 않은 민감 정보가 노출될 수 있는 보안 약점이다.

68. API 오용은 서비스에 제공되는 이용에 반하는 방법으로  API를 이용하거나 보안에 취약한 API를 이용하여 발생할 수 있는 보안 취약점이다.

69. 시큐어 코딩은 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로 부터 안전한 소프트웨어를 개발하는 기법이다.

70. (보안 취약점)은 해킹 등 외부 공격으로 시스템의 보안 정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안 허점이다.

71. (보안약점)은 보안 취약점의 근본적인 원인이 되는 SW의 결함, 실수, 버그 등의 오류를 뜻한다. 개발 단계의 보안 리스크이다.

72. DoS(Denial of Service)공격은 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다.

73. DDOS(Distributed Dos) 공격은 여러대의 공격자를 분산 배치항여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법이다.

74. 에이전트(Agent)는 DDoS 공격 구성요소 중 공격 대상에게 직접 공격을 가하는 시스템이다.

75. 마스터(Master)는 DDoS 공격 구성 요소 중 공격자에게서 직접 명령을 받는 시스템으로 여러 대의 에이전트를 관리하는 역할을 한다.

76, DES(Data Encryption Standard)는 56Bit의 키를 이용, 64Bit의 평문 블록을 64Bit의 암호문 블록으로 만드는 블록 암호 방식의 미국표준(NIST) 암호화 알고리즘이다.

77. AES(Advanced Encryption Standard)는 DES를 대체한 암호 알고리즘이며, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘이다.

78. 고유식별정보는 개인을 고유하게 구별하기 위하여 부여된 식별 정보로 주민등록번호, 여권번호, 운전면허번호, 외국인등록번호가 있다.

79. (민감정보)는 유전자 검사정보, 범죄경력정보 등 정보 주체의 사생활을 현저하게 침해할 수 있는 정보로 사상, 신념, 노동조합, 정치적 견해등이 해당한다.

80. LDAP(Lightweight Directory Access Protocol)은 사용자 정보를 유지를 위한 질의 및 디렉터리 서비스를 수정하기 위한 인터넷 프로토콜을 가리킨다.

81. 입력데이터 검증 및 표는 프로그램 입력값에 대한 검증 누락, 부적절한 검증 잘못된 형식 지정으이 보안 약점이다.

82. (보안기능)은 인증, 접근 제어, 기밀성, 암호화, 권한 관리 등 부적절한 구현의 보안 약점이다.

83. (시간 및 상태)는 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태으이 부적절한 관리하는 보안 약점이다.

84. (에러처리)는 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보가 포함하는 보안 약점이다.

85. 충분하지 않은 키 길이 사용 보안 약점의 대응방안으로 RSA키 길이를 2048 비트 이상 확보한다.

86. 충분하지 않은 키 길이 사용 보안약점의 대응방안으로 대칭 암호화 키 길이를 128 비트 이상 확보한다.

87. 경쟁 조건의 대응 방안에는 동기화 구문(Synchronized),(mutex) 사용이 있다.

88. 종료되지 않은 반복문 또는 재귀 함수 보안 약점의 대응 방안 중 재귀함수는 재귀함수를 정의한다.

89. 널 포인터 역참조 대응 방안에는 값을 참조하기 전에 (널) 값인지를 검사가 있다.

90. 잘못된 세션에 의한 정보 노출의 대응방안으로 싱글톤 패턴을 사용시 변수 적용 범위에 주의한다.

91. DNS에 의존한 보안 결정 보안 약점의 대응방안으로 DNS로 확인된 IP 정보 대신 주소를 사용한다.

92. (정적분석)은 SW를 실행하지 않고 보안 약점을 분석한다.

93. (동적분석)은 SW 실행환경에서 보안 약점을 분석한다.

94. 입력데이터 검증 및 표현 보안 약점의 대응 방안으로 사용자, 프로그램 입력 데이터에 대한 윻효성 검증 체계를 수립하고 실패 시 처리설계 및 구현이 있다.

95. 보안 기능 보안 약점의 대응 방안으로 (인증), 접근통제, 권한관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현이 있다.

96. 시간 및 상태 보안 약점의 대응 방안으로 공유 자원의 접근 (직렬화) 병렬 실행 가능 프레임 워크 사용, 블록문 내에서만 재귀함수 호출이 있다.

97. 에러 처리 보안 약점의 대응방안으로 에러 또는 오류 상황을 처리하지 않거나, 충분하게 처리되어 중요정보 (유출) 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현이 있다.

98. 코드 오류 보안 약점의 대응 방안으로 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정후 (경고 메시지 코드제거) 가 있다.

99. 캡슐화 보안 약점의 대응 방안으로 디버그 코드 제거와 필수 정보 외의 클래스 내 프라이빗(Private) 접근자 지정이 있다.

100. API오용 보안 약점의 대응 방안으로 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용이 있다.