당신은 응용층의 안전을 걱정합니까?

하면, 만약, 만약...되고 싶어요?
응용층은 때때로 인터넷 프로토콜(IP)을 통해 프로세스 간의 연결을 촉진하는 데 도움을 주는 7층이라고 불린다.응용 층은 개방 시스템의 최고 단계로 층이 그 아래에 있음을 나타낸다.
원격 컴퓨터의 파일에 접근하고 관리할 수 있으며 메일 서비스의 기능을 만들고 가상 터미널을 사용할 수 있습니다. 응용층에는 많은 일반적인 프로토콜, 시스템, 서비스가 있습니다.파일 전송 프로토콜(FTP), 웹 브라우저, 간단한 네트워크 관리 프로토콜(SNMP), 도메인 이름 서비스(DNS)와 하이퍼텍스트 전송 프로토콜(HTTP/HTTPS) 등 프로토콜은 application layer 시스템의 다른 부분이다.
그렇다면 웹 응용 프로그램이 응용 프로그램 수준에서 안전하다는 것을 확보할 수 있을까요?

애플리케이션 수준의 보안
응용 프로그램 수준에서 사이트의 안전성을 확보하는 것은 매우 중요하다.애플리케이션층은 최종 사용자와 가장 가까운 층이기 때문에 해커의 공격을 받기 쉽다.이 수준의 보안 수준이 낮으면 데이터 도난 및 성능/안정성 문제가 발생할 수 있습니다.다음은 걱정해야 할 응용 프로그램 수준의 보안 위협들입니다.

분산 서비스 공격 거부(DDoS)
서비스 공격을 거부하는 것은 사이트의 서버가 데이터에 잠기는 것을 가리킨다.이와 같은 공격은 대량의 클라이언트 컴퓨터와 협동하여 진행되는데 그 중 많은 것들이 바이러스에 감염되어 해커가 원격으로 장치에 들어가 공격에 가담하도록 할 가능성이 높다.DDoS는 서버를 실행할 수 없기 때문에 진정한 고객이나 사용자는 이 사이트의 목적을 완성할 수 없습니다.만약 웹 응용 프로그램이 온라인 상점이라면, 이것은 대량의 판매 실패를 의미할 수도 있습니다.
때때로 사이트의 서버는 동적이고 합법적으로 데이터에 잠길 수 있다. 예를 들어, 만약 웹 응용 프로그램이 광고나 유행하는 소셜 미디어 계정에서 소리를 질러서 대량의 웹 데이터를 얻게 된다면, 이것은 DDoS 공격이 아니다.
서비스 거부 공격을 방지하려면 가장 중요한 것은 방화벽이 악성 데이터와 합법적인 데이터를 구분할 수 있는 시스템이 있어야 한다.

SQL 주입
SQL 주입 공격은 공격자가 입력에 SQL을 쓰고 웹 응용 프로그램의 백엔드 데이터베이스에 직접 접근할 수 있는 것을 말한다.해커가 이렇게 하는 것은 정보를 훔치거나 전체 테이블을 삭제하기 위해서일 수도 있으며, 이는 웹 응용 프로그램에 심각한 파괴를 초래할 수도 있다.다음 호출 시 무고한 사용자의 브라우저와 컴퓨터를 공격할 수 있도록 데이터베이스에 악성코드를 추가하려고 시도할 수도 있다.
//Make sure your form submissions have strong user input validation
<form submit="submitSecure()">
  <label for="fname">First:</label>
  <input type="text" id="fname" name="fname">
  <label for="lname">Last:</label>
  <input type="text" id="lname" name="lname">
  <input type="submit" value="Submit">
</form>
이러한 상황을 방지하는 가장 좋은 방법은 강력한 사용자 입력 검증을 확보하고 사용자가 일반적인 텍스트, 숫자, 문자열만 허용하는 것이 아니라 HTML 형식으로 SQL 코드를 제출하는 것을 방지하는 것이다.

사이트 간 스크립트
지속성과 반사성 등 여러 가지 서로 다른 크로스 사이트 스크립트(XSS) 종류가 있는데 XSS를 바탕으로 하는 공격의 종류가 매우 많다.sss공격의 일부 흔한 버전은 공격자에게 개인/개인 데이터, 예를 들어 쿠키나 세션 정보를 전송하고 피해자의 브라우저를 예상 사이트에서 공격자가 제어하는 웹 내용으로 바꾸는 것을 포함한다.또 다른 큰 문제는 사용자의 기기에서 악의적인 조작을 하면서 공격받기 쉬운 사이트인 척하는 것이다.피해자의 컴퓨터가 팝업 창을 통해 피해자가 정말 어떤 내용을 다운로드하고 싶은지 확인하더라도, 피해자가 신뢰받는 사이트에서 왔다고 생각하기 때문에 동의할 수도 있기 때문에 많은 문제를 초래할 수 있다.
SQL 주입 예방과 유사하게 XSS를 방지하는 가장 좋은 방법은 강력한 사용자 입력 검증을 확보하고 해커가 정상적인 텍스트, 숫자, 문자열만 허용하는 것이 아니라 HTML 형식으로 응용 프로그램 코드를 제출하는 것을 방지하는 것이다.

매개 변수 변조
Parameter Tampering는 해커로 클라이언트와 서버 간에 전달되는 파라미터를 조종하여 사용자 증빙서류, 권한과 가격 등 응용 프로그램 데이터를 수정할 수 있다.이것은 상당히 간단한 공격으로 목표는 응용 프로그램의 업무 논리이다.이런 공격의 한 예는 사용자가 파라미터를 조작해 셔츠 20벌을 주문하고 1개만 구매하고 지불하는 것이다.다른 방법은 숨겨진 필드 값을 편집해서 가격을 바꾸는 것입니다.
//before parameter tampering
<input type="hidden" name="price" value="59.90">
//after parameter tampering
<input type="hidden" name="price" value="5.00">
일부 파라미터 변경 공격을 방지하는 방법은regex제한 데이터를 사용하여 데이터 검증 및 입력과 비교하는 서버 측 검증을 확보하고 html에 필요하지 않거나 숨겨진 데이터를 표시하지 않으며 차단이 허용되지 않도록 하는 것이다.
응용 프로그램 단계에서 웹 응용 프로그램이 해커의 공격을 받지 않도록 보호할 때 많은 것을 고려해야 하지만 사용자가 입력한 데이터 검증과 실현web application firewalls(WAFs)과/또는 안전한 웹 게이트웨이 서비스를 확보하는 것이 좋은 출발점이다.

좋은 웹페이지 즐겨찾기