728x90
반응형
SMALL
SW개발보안가이드중 구현단계에서의 점검항목은 크게 7가지 이다. (입보시에코캡아)
1. 입력데이터 검증 및 표현
2. 보안기능
3. 시간 및 상태
4. 에러처리
5. 코드오류
6. 캡슐화
7. API 오용
7-1.DNS Lookup 에 의존한 보안결정
7-2. 취약한 API사용
이 장에서는 "7.API 오용" 에 대한 점검항목을 설명한다.
7-1.DNS Lookup 에 의존한 보안결정
구분 | 설명 |
원인/영향 | DNS Lookup 명령어를 통해 얻은 도메인명을 가지고 유효성을 판단하는 경우 DNS 위변조시에는 잘못된 도메인명에 의해서 트래픽이 공격자를 경유하게 될 수도 있고, 공격자가 마치 동일 도메인에 속한 서버인 것처럼 위장할 수 있다 |
대응 | ① 보안결정에 DNS 조회결과를 사용하지 않는다. -> IP주소를 직접 참조한다. 취약) String ip = req.getRemoteAddr(); InetAddress addr = InetAddress.getByName(ip); <-- ip에 대한 도메인명을 조회 if (addr.getCanonicalHostName().endWidth('trustme.com")) { <-- 조회된 도메인명으로 체크 …………. } 안전) String ip = req.getRemoteAddr(); if (ip == null || "".equals(ip)) return; String trustedAddr = "127.0.0.1" ; if (ip.equals(trustedAddr)) { <-- ip 주소값으로 체크 ......... } |
7-2. 취약한 API사용
구분 | 설명 |
원인/영향 | ① J2EE 애플리케이션이 컨테이너에서 제공하는 자원연결관리를 사용하지 않고 직접 제작하는 경우 ② J2EE 애플리케이션이 프레임워크 메소드를 호출하지 않고 Socket을 직접 사용하는 경우 ③ J2EE 애플리케이션에서 System.exit() 사용은 컨테이너까지 종료시킨다. |
대응 | ① 컨테이너에서 제공하는 자원연결관리 기능을 사용한다 ② Socket 을 직접 사용하지 않고 프레임워크 메소드를 호출하여 사용한다. ③ J2EE 애플리케이션에서 System.exit() 을 사용하지 않는다. 취약) conn = DriverManager.getConnection(url, user, pw); <-- 자원에 대한 직접 연결 하고 있음 안전) DataSource datasource = (Datasource) ctx.lookup(CONNECT_STRING); <-- 연결 스트링 conn = datasource.getConnection(): 취약) socket = new Socket ("kisa.co.kr", 8080) ; <-- 소켓으로 직접 연결 시도 안전) URL url = new URL ("http://127.0.0.1:8080/DataServlet"); URLConnection urlConn = url.openConnection(); 취약) catch (EXception e) { System.exit(1); } |
728x90
반응형
LIST
'정보보안' 카테고리의 다른 글
CISA CPE 등록하기 (0) | 2019.12.04 |
---|---|
소스코드 보안약점 진단 후기... (0) | 2019.12.01 |
SW보안약점진단원 : 구현단계 - 캡슐화 (0) | 2019.11.29 |
SW보안약점진단원 : 구현단계 - 코드오류 (0) | 2019.11.28 |
SW보안약점진단원 : 구현단계 - 에러처리 (0) | 2019.11.27 |